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

Disassembly:
sub esp, 0x58
mov eax, dword [0x49dac4]
push ebx
push ebp
xor ebx, ebx
mov dword [esp + 0x10], ebx
mov dword [0x49dacc], ebx
push esi
push edi
mov edi, ebx
test eax, eax
je 0x42f2aa
cmp dword [esp + 0x7c], ebx
jne 0x42f2aa
push eax
push ebx
push dword [0x49d758]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov dword [0x49dac4], ebx
mov eax, dword [0x49dac8]
test eax, eax
je 0x42f2c7
push eax
push ebx
push dword [0x49d758]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov dword [0x49dac8], ebx
and dword [esp + 0x80], 1
mov ebp, 0x104
je 0x42f2f8
mov eax, 0x7d000
push eax
push 8
push dword [0x49d758]
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
mov dword [0x49dac4], esi
jmp 0x42f313
push ebp
push 8
push dword [0x49d758]
mov dword [esp + 0x1c], ebp
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
mov dword [0x49dac8], esi
test esi, esi
je 0x42f4b7
mov eax, dword [esp + 0x74]
test eax, eax
jne 0x42f32c
mov eax, 0x489028
mov dword [esp + 0x74], eax
push eax
call sub.MSVCRT.dll_strlen
pop ecx
add eax, 3
push eax
push 8
push dword [0x49d758]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [esp + 0x14], eax
test eax, eax
je 0x42f4b7
push dword [esp + 0x74]
push eax
call sub.MSVCRT.dll_strcpy
mov eax, dword [esp + 0x1c]
pop ecx
pop ecx
mov ecx, eax
cmp byte [eax], bl
je 0x42f373
cmp byte [ecx], 0x7c
jne 0x42f36e
mov byte [ecx], bl
inc ecx
cmp byte [ecx], bl
jne 0x42f367
cmp dword [esp + 0x70], ebx
je 0x42f406
push dword [esp + 0x70]
call sub.MSVCRT.dll_strlen
pop ecx
add eax, 2
push eax
push 8
push dword [0x49d758]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
push dword [esp + 0x70]
mov edi, eax
push edi
call sub.MSVCRT.dll_strcpy
push edi
call sub.MSVCRT.dll_strlen
add esp, 0xc
lea ecx, [edi + eax]
jmp 0x42f3b8
cmp ecx, edi
jbe 0x42f3dd
dec ecx
cmp byte [ecx], 0x5c
jne 0x42f3b3
cmp ecx, edi
jbe 0x42f3dd
mov eax, dword [esp + 0x10]
dec eax
mov byte [ecx], bl
push eax
lea eax, [ecx + 1]
push eax
push esi
call sub.MSVCRT.dll_strncpy
mov eax, dword [esp + 0x1c]
mov byte [esi + eax - 1], bl
jmp 0x42f3f7
mov eax, dword [esp + 0x10]
dec eax
push eax
push dword [esp + 0x74]
push esi
call sub.MSVCRT.dll_strncpy
mov eax, dword [esp + 0x1c]
mov byte [esi + eax - 1], bl
mov byte [edi], bl
add esp, 0xc
push esi
call fcn.0043099b
test eax, eax
jne 0x42f406
mov byte [esi], bl
push 0x4c
lea eax, [esp + 0x20]
push ebx
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
mov dword [esp + 0x1c], 0x4c
call fcn.0042f6c0
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x78]
inc eax
mov dword [esp + 0x38], esi
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], 0x8080c
cmp dword [esp + 0x80], ebx
je 0x42f469
mov dword [esp + 0x50], 0x80a0c
push 1
call fcn.0042f60c
cmp dword [esp + 0x7c], 1
lea eax, [esp + 0x1c]
push eax
jne 0x42f484
call dword [sym.imp.COMDLG32.DLL_GetSaveFileNameA]
jmp 0x42f48a
call dword [sym.imp.COMDLG32.DLL_GetOpenFileNameA]
push ebx
mov dword [esp + 0x1c], eax
call fcn.0042f60c
push dword [esp + 0x14]
push ebx
push dword [0x49d758]
call dword [sym.imp.KERNEL32.dll_HeapFree]
test edi, edi
je 0x42f4b7
push edi
push ebx
push dword [0x49d758]
call dword [sym.imp.KERNEL32.dll_HeapFree]
push dword [esp + 0x84]
push ebp
call fcn.004625e0
mov edi, eax
mov byte [edi], bl
cmp dword [esp + 0x18], ebx
je 0x42f57b
mov ecx, dword [esp + 0x34]
mov dword [0x49dacc], ecx
push esi
cmp dword [esp + 0x84], ebx
je 0x42f56a
call sub.MSVCRT.dll_strlen
inc eax
pop ecx
mov dword [0x49dac0], eax
push esi
cmp byte [eax + esi], bl
jne 0x42f50c
push edi
call sub.MSVCRT.dll_strcpy
mov byte [esi], bl
mov dword [0x49dac0], ebx
jmp 0x42f570
push 0x49dad0
call sub.MSVCRT.dll_strcpy
push 0x49dad0
call sub.MSVCRT.dll_strlen
mov ecx, 0x49dad0
add esp, 0xc
cmp byte [eax + ecx - 1], 0x5c
je 0x42f535
mov word [eax + ecx], 0x5c
push ecx
push edi
call sub.MSVCRT.dll_strcpy
mov eax, dword [0x49dac0]
add eax, esi
push eax
push edi
call sub.MSVCRT.dll_strcat
mov eax, dword [0x49dac0]
add eax, esi
push eax
call sub.MSVCRT.dll_strlen
mov ecx, dword [0x49dac0]
add esp, 0x14
inc ecx
add eax, ecx
mov dword [0x49dac0], eax
jmp 0x42f572
push edi
call sub.MSVCRT.dll_strcpy
pop ecx
pop ecx
push edi
call sub.MSVCRT.dll_strlen
pop ecx
mov ebx, eax
sub ebp, ebx
push ebp
call fcn.00462680
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret