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

Disassembly:
sub esp, 0x54
push ebx
push ebp
mov ebp, dword [esp + 0x68]
xor eax, eax
push esi
push edi
lea edi, [eax + 1]
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0x74]
mov ebx, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
movsx eax, byte [ebp]
inc ebp
mov dword [esp + 0x34], esi
mov ecx, eax
cmp eax, 0x25
jne 0x408131
mov bl, byte [ebp]
cmp bl, al
jne 0x407bd3
inc ebp
mov ebx, dword [esp + 0x6c]
mov esi, dword [esp + 0x74]
jmp 0x40813b
xor eax, eax
mov dword [esp + 0x20], ebp
xor esi, esi
mov dword [esp + 0x1c], eax
and dword [esp + 0x14], esi
xor edi, edi
and dword [esp + 0x30], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x3c], 0x20
mov edx, ebp
mov ecx, ebp
inc ebp
cmp bl, 0x2d
jne 0x407c13
xor eax, eax
inc eax
mov dword [esp + 0x38], eax
jmp 0x407ca8
cmp bl, 0x2c
jne 0x407c25
mov dword [esp + 0x14], 3
jmp 0x407ca8
cmp bl, 0x23
jne 0x407c33
xor eax, eax
inc eax
mov dword [esp + 0x28], eax
jmp 0x407ca8
push 0x30
pop eax
cmp bl, al
jne 0x407c40
mov dword [esp + 0x3c], eax
jmp 0x407ca8
lea eax, [ebx - 0x31]
cmp al, 8
ja 0x407c5a
lea eax, [esp + 0x18]
mov ebp, ecx
push eax
push ebp
call fcn.00401734
mov dword [esp + 0x2c], eax
jmp 0x407c7a
cmp bl, 0x2e
jne 0x407c80
cmp byte [ebp], 0x30
push 1
pop eax
cmove esi, eax
lea eax, [esp + 0x18]
push eax
push ebp
call fcn.00401734
neg eax
mov dword [esp + 0x1c], eax
add ebp, dword [esp + 0x18]
jmp 0x407ca8
cmp bl, 0x49
jne 0x407c96
cmp byte [ebp], 0x36
jne 0x407cb0
cmp byte [edx + 2], 0x34
jne 0x407cb0
lea ebp, [edx + 3]
jmp 0x407ca3
cmp bl, 0x6c
jne 0x407cb0
cmp byte [ebp], bl
jne 0x407cb0
lea ebp, [edx + 2]
xor eax, eax
lea edi, [eax + 1]
mov bl, byte [ebp]
jmp 0x407bfd
mov eax, dword [esp + 0x74]
mov dword [esp + 0x24], esi
add eax, 4
mov esi, dword [esp + 0x34]
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], eax
mov dword [esp + 0x40], eax
mov ecx, dword [esi]
cmp bl, 0x63
jne 0x407ce4
mov byte [esp + 0x44], cl
lea esi, [esp + 0x44]
mov byte [esp + 0x45], 0
jmp 0x408010
cmp bl, 0x73
jne 0x407cfd
mov esi, ecx
test ecx, ecx
jne 0x408010
mov esi, str._null_
jmp 0x408010
cmp bl, 0x77
jne 0x407d31
cmp byte [ebp], 0x73
jne 0x407d77
lea ebp, [edx + 2]
test ecx, ecx
je 0x407cf3
push 0x5a
push ecx
call fcn.004078c7
mov ebx, eax
mov dword [esp + 0x30], ebx
mov esi, ebx
test ebx, ebx
jne 0x408010
mov esi, str._InternalError_
jmp 0x408010
cmp bl, 0x55
jne 0x407d5b
cmp byte [ebp], 0x38
jne 0x407d77
cmp byte [edx + 2], 0x73
jne 0x407d77
lea ebp, [edx + 3]
test ecx, ecx
je 0x407cf3
push 0x55
push ecx
call fcn.004079f2
mov dword [esp + 0x30], eax
mov esi, eax
test eax, eax
jmp 0x407d21
cmp bl, 0x78
je 0x407f42
cmp bl, 0x58
je 0x407f42
cmp bl, 0x64
je 0x407d87
cmp bl, 0x75
je 0x407d87
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
push 0x25
pop eax
jmp 0x407bc6
xor esi, esi
xor edx, edx
inc esi
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], esi
test edi, edi
jne 0x407e40
cmp bl, 0x64
jne 0x407dab
test ecx, ecx
jns 0x407dab
neg ecx
mov dword [esp + 0x20], esi
lea esi, [esp + 0x63]
mov byte [esp + 0x63], dl
cmp dword [esp + 0x24], edx
jne 0x407dcb
test ecx, ecx
jne 0x407dcb
lea esi, [esp + 0x62]
mov byte [esp + 0x62], 0x30
jmp 0x408010
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x24]
mov eax, ecx
xor edx, edx
push 0xa
pop ecx
div ecx
mov ecx, eax
lea eax, [edx + 0x30]
mov dword [esp + 0x24], eax
test ebp, ebp
js 0x407e0c
cmp dword [esp + 0x14], 0
je 0x407e07
test ebp, ebp
je 0x407e07
mov eax, ebp
cdq
idiv dword [esp + 0x14]
mov eax, dword [esp + 0x24]
test edx, edx
jne 0x407e07
dec esi
mov byte [esi], 0x2c
dec esi
mov byte [esi], al
jmp 0x407e30
test edi, edi
jne 0x407e1f
cmp eax, 0x30
jne 0x407e1f
cmp dword [esp + 0x28], edi
je 0x407e1f
test ecx, ecx
jne 0x407e30
and dword [esp + 0x28], 0
dec esi
mov byte [esi], al
cmp ebp, 0xffffffff
jne 0x407e30
dec esi
mov byte [esi], 0x2e
inc ebp
test ecx, ecx
jne 0x407dd3
mov dword [esp + 0x1c], ebp
mov ecx, ebp
jmp 0x407f05
mov edi, dword [eax]
xor ebp, ebp
add dword [esp + 0x74], 4
or ebp, ecx
or edi, edx
cmp bl, 0x64
jne 0x407e60
cmp dword [eax], edx
jge 0x407e60
neg ebp
mov dword [esp + 0x20], esi
adc edi, edx
neg edi
lea esi, [esp + 0x63]
mov byte [esp + 0x63], dl
cmp dword [esp + 0x24], edx
jne 0x407e86
mov eax, ebp
or eax, edi
jne 0x407e86
mov ebp, dword [esp + 0x70]
lea esi, [esp + 0x62]
mov byte [esp + 0x62], 0x30
jmp 0x408010
lea eax, [esp + 0x18]
push eax
push 0xa
pop eax
push eax
push edi
push ebp
call fcn.00408718
mov ecx, dword [esp + 0x1c]
mov edi, edx
mov edx, dword [esp + 0x18]
mov ebp, eax
add edx, 0x30
mov dword [esp + 0x34], edx
test ecx, ecx
js 0x407ed0
cmp dword [esp + 0x14], 0
je 0x407ecb
test ecx, ecx
je 0x407ecb
mov eax, ecx
cdq
idiv dword [esp + 0x14]
test edx, edx
mov edx, dword [esp + 0x34]
jne 0x407ecb
dec esi
mov byte [esi], 0x2c
dec esi
mov byte [esi], dl
jmp 0x407efa
cmp dword [esp + 0x24], 0
jne 0x407ee9
cmp edx, 0x30
jne 0x407ee9
cmp dword [esp + 0x28], 0
je 0x407ee9
mov eax, ebp
or eax, edi
jne 0x407efa
and dword [esp + 0x28], 0
dec esi
mov byte [esi], dl
cmp ecx, 0xffffffff
jne 0x407efa
dec esi
mov byte [esi], 0x2e
inc ecx
mov eax, ebp
or eax, edi
mov dword [esp + 0x1c], ecx
jne 0x407e86
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x70]
test ecx, ecx
jns 0x407f22
neg ecx
dec esi
mov byte [esi], 0x30
sub ecx, 1
jne 0x407f13
dec esi
mov byte [esi], 0x2e
jmp 0x407f24
jne 0x407f28
dec esi
mov byte [esi], 0x30
cmp bl, 0x64
jne 0x408010
test edi, edi
je 0x408010
dec esi
mov byte [esi], 0x2d
jmp 0x408010
push 0x37
pop edx
xor eax, eax
cmp bl, 0x78
push 0x57
pop esi
cmove edx, esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x34], edx
lea esi, [esp + 0x63]
mov byte [esp + 0x63], al
test edi, edi
jne 0x407fa9
xor ebp, ebp
mov edx, ecx
shr ecx, 4
and edx, 0xf
mov ebx, edx
cmp edx, 9
ja 0x407f7a
add ebx, 0x30
jmp 0x407f7e
add ebx, dword [esp + 0x34]
cmp dword [esp + 0x14], 0
je 0x407f97
cmp edx, 9
cmova edi, ebp
test edi, edi
je 0x407f97
test al, 3
jne 0x407f97
dec esi
mov byte [esi], 0x2c
dec esi
inc eax
mov dword [esp + 0x18], eax
mov edi, eax
mov ebp, edi
mov byte [esi], bl
test ecx, ecx
jne 0x407f66
jmp 0x407ffb
mov edx, dword [esp + 0x40]
xor edi, edi
add dword [esp + 0x74], 4
or edi, ecx
mov ecx, dword [esp + 0x24]
mov ebp, dword [esp + 0x34]
mov edx, dword [edx]
mov ebx, dword [esp + 0x14]
mov eax, edi
shrd edi, edx, 4
and eax, 0xf
shr edx, 4
cmp eax, 9
ja 0x407fda
add eax, 0x30
jmp 0x407fdc
add eax, ebp
test ebx, ebx
je 0x407fed
test ecx, ecx
je 0x407fed
test cl, 3
jne 0x407fed
dec esi
mov byte [esi], 0x2c
dec esi
inc ecx
mov byte [esi], al
mov eax, edi
or eax, edx
jne 0x407fc4
mov dword [esp + 0x18], ecx
cmp dword [esp + 0x28], 0
mov ebp, dword [esp + 0x70]
je 0x408010
mov byte [esi - 1], 0x78
sub esi, 2
mov byte [esi], 0x30
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp dword [esp + 0x38], 0
mov edi, eax
je 0x40809b
add dword [esp + 0x10], edi
mov ebx, edi
mov eax, dword [esp + 0x6c]
dec eax
cmp eax, edi
cmovle ebx, eax
test ebx, ebx
jle 0x408055
push ebx
push esi
mov esi, dword [esp + 0x70]
push esi
call sub.ntdll.dll_memcpy
mov eax, dword [esp + 0x78]
add esi, ebx
add esp, 0xc
mov dword [esp + 0x68], esi
sub eax, ebx
mov dword [esp + 0x6c], eax
jmp 0x40805d
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
mov ebx, dword [esp + 0x2c]
sub ebx, edi
mov edi, dword [esp + 0x10]
test ebx, ebx
jle 0x40810e
add edi, ebx
dec eax
cmp eax, ebx
mov dword [esp + 0x10], edi
cmovle ebx, eax
test ebx, ebx
jle 0x40810e
push ebx
push 0x20
push esi
call sub.ntdll.dll_memset
add esi, ebx
add esp, 0xc
sub dword [esp + 0x6c], ebx
mov dword [esp + 0x68], esi
jmp 0x40810e
mov ebx, dword [esp + 0x2c]
test ebx, ebx
je 0x4080dd
sub ebx, edi
test ebx, ebx
jle 0x4080dd
add dword [esp + 0x10], ebx
mov eax, dword [esp + 0x6c]
dec eax
cmp eax, ebx
cmovle ebx, eax
test ebx, ebx
jle 0x4080dd
mov eax, dword [esp + 0x68]
push ebx
push dword [esp + 0x40]
push eax
call sub.ntdll.dll_memset
mov ecx, dword [esp + 0x74]
add esp, 0xc
add ecx, ebx
sub dword [esp + 0x6c], ebx
mov dword [esp + 0x68], ecx
jmp 0x4080e1
mov ecx, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
add dword [esp + 0x10], edi
lea eax, [ebx - 1]
cmp eax, edi
cmovle edi, eax
test edi, edi
jle 0x40810a
push edi
push esi
push ecx
call sub.ntdll.dll_memcpy
add dword [esp + 0x74], edi
add esp, 0xc
sub ebx, edi
mov dword [esp + 0x6c], ebx
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
mov esi, dword [esp + 0x74]
test eax, eax
je 0x407baa
push eax
call fcn.00404070
jmp 0x407b9e
mov dword [esp + 0x74], esi
mov eax, ecx
test ecx, ecx
je 0x408160
mov edx, dword [esp + 0x68]
xor ecx, ecx
inc edi
inc ecx
mov dword [esp + 0x10], edi
cmp ebx, ecx
jle 0x407baa
mov byte [edx], al
inc edx
dec ebx
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], ebx
jmp 0x407baa
test ebx, ebx
jle 0x408167
mov byte [edx], 0
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 0x10