Function at 0x47916c
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xdc
push ebx
push esi
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0x7c]
push edi
call fcn.00403f6a
mov ecx, dword [ebp + 0xc]
push 0x49c9dc
mov dword [esp + 0x18], 0
call fcn.00406173
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 4]
mov esi, dword [eax]
mov ecx, esi
call fcn.00405efc
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
mov dword [esp + 0x30], eax
mov dword [esp + 0x70], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x74], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0x78], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x7c], eax
inc dword [eax]
mov eax, dword [ebx + 4]
mov esi, dword [eax + 4]
mov ecx, esi
call fcn.00405efc
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
mov dword [esp + 0x34], eax
mov dword [esp + 0x60], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x64], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0x68], eax
mov eax, dword [ecx + 0xc]
lea ecx, [esp + 0x20]
mov dword [esp + 0x6c], eax
inc dword [eax]
call fcn.00403f6a
lea ecx, [esp + 0x40]
call fcn.00403f6a
mov eax, dword [ebx + 4]
mov esi, dword [eax + 8]
mov ecx, esi
call fcn.00405efc
mov eax, dword [esi + 8]
mov ecx, dword [eax]
call fcn.0041f3a2
push eax
lea ecx, [esp + 0x3c]
call fcn.00401912
push 0
push 0x4adf70
push dword [esp + 0x40]
call fcn.0042d298
add esp, 0xc
test eax, eax
je 0x479379
push eax
lea ecx, [esp + 0x44]
call fcn.004043ee
mov eax, dword [esp + 0x44]
xor edi, edi
xor ecx, ecx
test eax, eax
je 0x47929a
lea esp, [esp]
mov edx, dword [esp + 0x40]
xor esi, esi
movzx edx, word [edx + edi*2]
mov dword [esp + 0xc], edx
mov edx, 0x28
cmp word [esp + 0xc], dx
je 0x47929d
movzx edx, word [esi*2 + 0x4c6202]
inc esi
test dx, dx
jne 0x47927f
inc ecx
inc edi
cmp ecx, eax
jb 0x47926c
or edi, 0xffffffff
xor esi, esi
xor ecx, ecx
test eax, eax
je 0x4792ef
lea esp, [esp]
mov edx, dword [esp + 0x40]
mov dword [esp + 0xc], 0
movzx edx, word [edx + esi*2]
mov dword [esp + 0x18], edx
mov edx, 0x29
lea esp, [esp]
cmp word [esp + 0x18], dx
je 0x4792f2
mov edx, dword [esp + 0xc]
inc edx
mov dword [esp + 0xc], edx
movzx edx, word [edx*2 + 0x4c6204]
test dx, dx
jne 0x4792cc
inc ecx
inc esi
cmp ecx, eax
jb 0x4792ac
or esi, 0xffffffff
cmp edi, 0xffffffff
je 0x47940c
cmp esi, 0xffffffff
je 0x47940c
cmp esi, edi
jb 0x47940c
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x24]
call fcn.00404350
push 0x4adf70
lea ecx, [esp + 0x24]
call fcn.004044dd
sub esi, edi
lea eax, [edi + 1]
dec esi
lea ecx, [esp + 0x80]
push esi
push eax
lea eax, [esp + 0x48]
push eax
call fcn.004040d9
lea eax, [esp + 0x80]
push eax
lea ecx, [esp + 0x24]
call fcn.00404350
push 0x4adf70
lea ecx, [esp + 0x24]
call fcn.004044dd
push 0
push 0x4adf70
push 0
call fcn.0042d298
add esp, 0xc
test eax, eax
jne 0x47924f
push 0x4adf70
lea ecx, [esp + 0x24]
call fcn.004044dd
mov esi, 1
cmp dword [esp + 0x24], esi
jbe 0x4793b8
push esi
lea ecx, [esp + 0x24]
call fcn.0040426f
cmp word [eax], 0x7c
jne 0x4793b1
push esi
lea ecx, [esp + 0x24]
call fcn.0040426f
xor ecx, ecx
mov word [eax], cx
inc esi
cmp esi, dword [esp + 0x24]
jb 0x479392
mov esi, dword [ebp + 0x10]
cmp esi, 6
jb 0x4793cf
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 0x14]
call fcn.004721ea
mov dword [esp + 0x14], eax
push 0x1fffe
call fcn.004201ab
add esp, 4
lea ecx, [esp + 0x18]
push eax
call fcn.00401912
cmp esi, 5
jb 0x479441
mov eax, dword [ebx + 4]
mov esi, dword [eax + 0x10]
mov ecx, esi
call fcn.00405efc
mov eax, dword [esi + 8]
mov edi, dword [esp + 0x18]
push dword [eax]
push edi
call fcn.0042464e
add esp, 8
jmp 0x47944a
mov edx, dword [esp + 0x10]
mov eax, dword [edx]
mov eax, dword [eax + 4]
cmp byte [eax + edx + 0xd], 0
mov ecx, dword [eax + edx + 8]
je 0x479423
mov ecx, dword [ecx + 0x38]
mov dword [ecx + 0x14], 2
cmp byte [eax + edx + 0xd], 0
mov ecx, dword [eax + edx + 8]
je 0x479438
mov ecx, dword [ecx + 0x38]
mov byte [ecx + 0x18], 0
jmp 0x4796aa
mov edi, dword [esp + 0x18]
xor eax, eax
mov word [edi], ax
push 0x58
lea eax, [esp + 0x94]
push 0
push eax
call fcn.00423330
mov eax, dword [esp + 0x20]
add esp, 0xc
cmp dword [ebp + 0x10], 4
mov esi, 0x80004
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x90], 0x58
mov dword [esp + 0xac], edi
mov dword [esp + 0xb0], 0xffff
mov dword [esp + 0xbc], eax
mov dword [esp + 0xcc], 0x49c9dc
jb 0x479551
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 0xc]
call fcn.004061fc
cmp eax, 0x1f
jg 0x479551
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 0xc]
call fcn.004061fc
test eax, eax
js 0x479551
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 0xc]
call fcn.004061fc
mov ecx, dword [ebx + 4]
mov esi, eax
and esi, 0x10
or esi, 0x400020
shr esi, 3
mov ecx, dword [ecx + 0xc]
call fcn.004061fc
test al, 8
je 0x479512
or esi, 0x2000
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 0xc]
call fcn.004061fc
test al, 4
je 0x479527
or esi, 0x200
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 0xc]
call fcn.004061fc
test al, 2
je 0x47953c
or esi, 0x800
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 0xc]
call fcn.004061fc
test al, 1
je 0x479551
or esi, 0x1000
cmp byte [ebp + 0x14], 0
lea eax, [esp + 0x90]
mov dword [esp + 0xc4], esi
push eax
je 0x479645
call dword [sym.imp.COMDLG32.dll_GetOpenFileNameW]
test eax, eax
je 0x47961a
push dword [esp + 0xac]
test esi, 0x200
je 0x479656
call fcn.0042462e
add esp, 4
lea ecx, [esp + 0x50]
mov esi, eax
push dword [esp + 0xac]
call fcn.004045fd
mov eax, dword [esp + 0xac]
add eax, 2
lea eax, [eax + esi*2]
mov dword [esp + 0xac], eax
cmp word [eax], 0
je 0x479602
push eax
call fcn.0042462e
add esp, 4
lea ecx, [esp + 0x50]
mov esi, eax
push 0x4adf70
call fcn.004044dd
push dword [esp + 0xac]
lea ecx, [esp + 0x54]
call fcn.004044dd
mov eax, dword [esp + 0xac]
add eax, 2
lea eax, [eax + esi*2]
mov dword [esp + 0xac], eax
cmp word [eax], 0
jne 0x4795bf
mov ecx, dword [ebp + 0xc]
lea eax, [esp + 0x50]
push eax
call fcn.0040611c
lea ecx, [esp + 0x50]
call fcn.004020f8
jmp 0x479690
mov edx, dword [esp + 0x10]
mov eax, dword [edx]
mov eax, dword [eax + 4]
cmp byte [eax + edx + 0xd], 0
mov ecx, dword [eax + edx + 8]
je 0x479631
mov ecx, dword [ecx + 0x38]
mov dword [ecx + 0x14], 1
cmp byte [eax + edx + 0xd], 0
mov ecx, dword [eax + edx + 8]
je 0x47968c
jmp 0x479689
call dword [sym.imp.COMDLG32.dll_GetSaveFileNameW]
test eax, eax
je 0x479660
push dword [esp + 0xac]
mov ecx, dword [ebp + 0xc]
call fcn.00406173
jmp 0x479690
mov edx, dword [esp + 0x10]
mov eax, dword [edx]
mov eax, dword [eax + 4]
cmp byte [eax + edx + 0xd], 0
mov ecx, dword [eax + edx + 8]
je 0x479677
mov ecx, dword [ecx + 0x38]
mov dword [ecx + 0x14], 1
cmp byte [eax + edx + 0xd], 0
mov ecx, dword [eax + edx + 8]
je 0x47968c
mov ecx, dword [ecx + 0x38]
mov byte [ecx + 0x18], 0
mov eax, dword [esp + 0x1c]
add dword [eax], 0xffffffff
jne 0x4796aa
push 4
push eax
call fcn.0042016d
push edi
call fcn.004201b4
add esp, 0xc
mov eax, dword [esp + 0x3c]
add dword [eax], 0xffffffff
jne 0x4796c7
push 4
push eax
call fcn.0042016d
push dword [esp + 0x40]
call fcn.004201b4
add esp, 0xc
lea ecx, [esp + 0x40]
call fcn.004020f8
lea ecx, [esp + 0x20]
call fcn.004020f8
lea ecx, [esp + 0x60]
call fcn.004020f8
lea ecx, [esp + 0x70]
call fcn.004020f8
lea ecx, [esp + 0x80]
call fcn.004020f8
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x10