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

Disassembly:
push 0xffffffffffffffff
push 0x42898c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1b4
push ebx
push ebp
push esi
push edi
mov ebx, dword [esp + 0x230]
mov eax, dword [ebx + 0x18]
xor ebp, ebp
cmp eax, 0x10
mov dword [esp + 0x1cc], 3
mov dword [esp + 0x10], ebp
jb 0x41c394
mov esi, dword [ebx + 4]
jmp 0x41c397
lea esi, [ebx + 4]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 0x105
jl 0x41c3ac
mov eax, 0x104
jmp 0x41c3b0
cmp eax, ebp
jl 0x41c3cf
mov ecx, eax
mov edx, ecx
shr ecx, 2
lea edi, [esp + 0xbc]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov byte [esp + eax + 0xbc], 0
push 0x2000
lea ecx, [esp + 0x5c]
call fcn.0041b1f0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push 0xffffffffffffffff
push ebp
lea eax, [esp + 0x238]
mov esi, 0xf
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebp
push eax
mov byte [esp + 0x1f4], 4
mov byte [ecx + 4], 0
call fcn.00401310
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x70], esp
push 0xffffffffffffffff
push ebp
lea edx, [esp + 0x238]
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebp
push edx
mov byte [esp + 0x210], 5
mov byte [ecx + 4], 0
call fcn.00401310
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x6c], esp
push 0xffffffffffffffff
push ebp
lea eax, [esp + 0x238]
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebp
push eax
mov byte [esp + 0x22c], 6
mov byte [ecx + 4], 0
call fcn.00401310
lea ecx, [esp + 0xac]
push ecx
mov byte [esp + 0x224], 4
call fcn.0041c0b0
mov edx, dword [esp + 0x230]
add esp, 0x58
xor eax, eax
mov ecx, 0x13
lea edi, [esp + 0x70]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x1d4]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x74], edx
lea edx, [esp + 0xbc]
mov dword [esp + 0x70], 0x4c
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], 0x105
mov dword [esp + 0xa4], 4
mov dword [esp + 0x14], ebp
cmp dword [esp + 0x14], ebp
jne 0x41c707
lea eax, [esp + 0x70]
push eax
call dword [sym.imp.comdlg32.dll_GetSaveFileNameA]
test eax, eax
je 0x41c707
lea eax, [esp + 0xbc]
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x41c500
sub eax, edx
push eax
lea ecx, [esp + 0xc0]
push ecx
mov ecx, ebx
call fcn.00401b80
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push 0xffffffffffffffff
push ebp
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebp
push ebx
mov byte [ecx + 4], 0
call fcn.00401310
lea edx, [esp + 0x58]
push edx
call fcn.0041bd70
add esp, 0x20
mov edx, dword [eax + 0x14]
mov ecx, edx
cmp ecx, edx
jae 0x41c54b
cmp edx, ebp
je 0x41c57a
cmp dword [eax + 0x18], 0x10
jb 0x41c55a
mov eax, dword [eax + 4]
jmp 0x41c55d
add eax, 4
xor ecx, ecx
mov esi, eax
mov edi, 0x42a46c
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x41c571
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebp
mov esi, 0xf
jne 0x41c583
xor eax, eax
cmp edx, ebp
setne al
cmp eax, ebp
mov eax, dword [esp + 0x54]
mov edi, 0x10
sete bl
cmp eax, edi
mov byte [esp + 0x1cc], 4
jb 0x41c5a8
mov eax, dword [esp + 0x40]
push eax
call fcn.0041e69d
add esp, 4
test bl, bl
mov ebx, dword [esp + 0x230]
mov dword [esp + 0x54], esi
mov dword [esp + 0x50], ebp
mov byte [esp + 0x40], 0
je 0x41c5d2
push 0xffffffffffffffff
push ebp
lea ecx, [esp + 0x200]
push ecx
mov ecx, ebx
call fcn.00401220
mov eax, dword [esp + 0x248]
cmp eax, eax
mov edx, eax
jae 0x41c5df
cmp edx, ebp
je 0x41c61a
cmp dword [esp + 0x24c], edi
mov esi, dword [esp + 0x238]
jae 0x41c5fa
lea esi, [esp + 0x238]
xor ecx, ecx
mov edi, 0x42a46c
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x41c60c
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebp
mov esi, 0xf
mov edi, 0x10
jne 0x41c629
xor eax, eax
cmp edx, ebp
setne al
cmp eax, ebp
je 0x41c6ff
cmp dword [ebx + 0x18], edi
jb 0x41c633
mov eax, dword [ebx + 4]
jmp 0x41c636
lea eax, [ebx + 4]
push 0x42b730
push eax
call fcn.0041ef28
add esp, 8
cmp eax, ebp
je 0x41c6ff
push eax
call fcn.0041eda1
mov eax, dword [ebx + 0x18]
add esp, 4
cmp eax, edi
lea eax, [ebx + 4]
jb 0x41c661
mov eax, dword [eax]
push eax
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x38], esp
push 0xffffffffffffffff
push ebp
lea edx, [esp + 0x25c]
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebp
push edx
mov byte [ecx + 4], 0
call fcn.00401310
lea eax, [esp + 0x3c]
push eax
call fcn.0041b820
mov eax, dword [esp + 0x58]
add esp, 0x24
cmp eax, edi
mov eax, dword [esp + 0x20]
jae 0x41c6a2
lea eax, [esp + 0x20]
mov ecx, dword [esp + 0x74]
push 0x33
push ebp
push eax
push ecx
call dword [sym.imp.USER32.dll_MessageBoxA]
sub eax, 2
je 0x41c6c5
sub eax, 4
jne 0x41c6cd
mov dword [esp + 0x10], 1
jmp 0x41c6cd
mov dword [esp + 0x14], 1
cmp dword [esp + 0x34], edi
jb 0x41c6e0
mov edx, dword [esp + 0x20]
push edx
call fcn.0041e69d
add esp, 4
cmp dword [esp + 0x10], ebp
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], ebp
mov byte [esp + 0x20], 0
jne 0x41c707
mov ebx, dword [esp + 0x230]
jmp 0x41c4d6
mov dword [esp + 0x10], 1
lea ecx, [esp + 0x58]
mov byte [esp + 0x1cc], 3
call fcn.0041b470
mov eax, dword [esp + 0x1f4]
mov esi, 0x10
cmp eax, esi
jb 0x41c738
mov eax, dword [esp + 0x1e0]
push eax
call fcn.0041e69d
add esp, 4
cmp dword [esp + 0x210], esi
jb 0x41c751
mov ecx, dword [esp + 0x1fc]
push ecx
call fcn.0041e69d
add esp, 4
cmp dword [esp + 0x22c], esi
jb 0x41c76a
mov edx, dword [esp + 0x218]
push edx
call fcn.0041e69d
add esp, 4
cmp dword [esp + 0x24c], esi
jb 0x41c783
mov eax, dword [esp + 0x238]
push eax
call fcn.0041e69d
add esp, 4
mov ecx, dword [esp + 0x1c4]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x1c0
ret