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

Disassembly:
sub esp, 0x58
mov eax, dword [0x1003fb04]
push ebx
push ebp
xor ebx, ebx
mov dword [esp + 0x10], ebx
mov dword [0x1003fb0c], ebx
push esi
push edi
mov edi, ebx
test eax, eax
je 0x10004659
cmp dword [esp + 0x7c], ebx
jne 0x10004659
push eax
push ebx
push dword [0x1003fab8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov dword [0x1003fb04], ebx
mov eax, dword [0x1003fb08]
test eax, eax
je 0x10004676
push eax
push ebx
push dword [0x1003fab8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov dword [0x1003fb08], ebx
and dword [esp + 0x80], 1
mov ebp, 0x104
je 0x100046a7
mov eax, 0x7d000
push eax
push 8
push dword [0x1003fab8]
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
mov dword [0x1003fb04], esi
jmp 0x100046c2
push ebp
push 8
push dword [0x1003fab8]
mov dword [esp + 0x1c], ebp
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
mov dword [0x1003fb08], esi
test esi, esi
je 0x10004866
mov eax, dword [esp + 0x74]
test eax, eax
jne 0x100046db
mov eax, section..rdata
mov dword [esp + 0x74], eax
push eax
call sub.MSVCRT.dll_strlen
pop ecx
add eax, 3
push eax
push 8
push dword [0x1003fab8]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [esp + 0x14], eax
test eax, eax
je 0x10004866
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 0x10004722
cmp byte [ecx], 0x7c
jne 0x1000471d
mov byte [ecx], bl
inc ecx
cmp byte [ecx], bl
jne 0x10004716
cmp dword [esp + 0x70], ebx
je 0x100047b5
push dword [esp + 0x70]
call sub.MSVCRT.dll_strlen
pop ecx
add eax, 2
push eax
push 8
push dword [0x1003fab8]
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 0x10004767
cmp ecx, edi
jbe 0x1000478c
dec ecx
cmp byte [ecx], 0x5c
jne 0x10004762
cmp ecx, edi
jbe 0x1000478c
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 0x100047a6
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.1000e244
test eax, eax
jne 0x100047b5
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.1000493a
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 0x10004818
mov dword [esp + 0x50], 0x80a0c
push 1
call fcn.100049f1
cmp dword [esp + 0x7c], 1
lea eax, [esp + 0x1c]
push eax
jne 0x10004833
call dword [sym.imp.COMDLG32.DLL_GetSaveFileNameA]
jmp 0x10004839
call dword [sym.imp.COMDLG32.DLL_GetOpenFileNameA]
push ebx
mov dword [esp + 0x1c], eax
call fcn.100049f1
push dword [esp + 0x14]
push ebx
push dword [0x1003fab8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
test edi, edi
je 0x10004866
push edi
push ebx
push dword [0x1003fab8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
push dword [esp + 0x84]
push ebp
call fcn.100101d0
mov edi, eax
mov byte [edi], bl
cmp dword [esp + 0x18], ebx
je 0x1000492a
mov ecx, dword [esp + 0x34]
mov dword [0x1003fb0c], ecx
push esi
cmp dword [esp + 0x84], ebx
je 0x10004919
call sub.MSVCRT.dll_strlen
inc eax
pop ecx
mov dword [0x1003fb00], eax
push esi
cmp byte [eax + esi], bl
jne 0x100048bb
push edi
call sub.MSVCRT.dll_strcpy
mov byte [esi], bl
mov dword [0x1003fb00], ebx
jmp 0x1000491f
push 0x1003fb10
call sub.MSVCRT.dll_strcpy
push 0x1003fb10
call sub.MSVCRT.dll_strlen
mov ecx, 0x1003fb10
add esp, 0xc
cmp byte [eax + ecx - 1], 0x5c
je 0x100048e4
mov word [eax + ecx], 0x5c
push ecx
push edi
call sub.MSVCRT.dll_strcpy
mov eax, dword [0x1003fb00]
add eax, esi
push eax
push edi
call sub.MSVCRT.dll_strcat
mov eax, dword [0x1003fb00]
add eax, esi
push eax
call sub.MSVCRT.dll_strlen
mov ecx, dword [0x1003fb00]
add esp, 0x14
inc ecx
add eax, ecx
mov dword [0x1003fb00], eax
jmp 0x10004921
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.10010270
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret