Function at 0x407ce7
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 0x40828e
mov bl, byte [ebp]
cmp bl, al
jne 0x407d30
inc ebp
mov ebx, dword [esp + 0x6c]
mov esi, dword [esp + 0x74]
jmp 0x408298
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 0x407d70
xor eax, eax
inc eax
mov dword [esp + 0x38], eax
jmp 0x407e05
cmp bl, 0x2c
jne 0x407d82
mov dword [esp + 0x14], 3
jmp 0x407e05
cmp bl, 0x23
jne 0x407d90
xor eax, eax
inc eax
mov dword [esp + 0x28], eax
jmp 0x407e05
push 0x30
pop eax
cmp bl, al
jne 0x407d9d
mov dword [esp + 0x3c], eax
jmp 0x407e05
lea eax, [ebx - 0x31]
cmp al, 8
ja 0x407db7
lea eax, [esp + 0x18]
mov ebp, ecx
push eax
push ebp
call fcn.00401734
mov dword [esp + 0x2c], eax
jmp 0x407dd7
cmp bl, 0x2e
jne 0x407ddd
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 0x407e05
cmp bl, 0x49
jne 0x407df3
cmp byte [ebp], 0x36
jne 0x407e0d
cmp byte [edx + 2], 0x34
jne 0x407e0d
lea ebp, [edx + 3]
jmp 0x407e00
cmp bl, 0x6c
jne 0x407e0d
cmp byte [ebp], bl
jne 0x407e0d
lea ebp, [edx + 2]
xor eax, eax
lea edi, [eax + 1]
mov bl, byte [ebp]
jmp 0x407d5a
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 0x407e41
mov byte [esp + 0x44], cl
lea esi, [esp + 0x44]
mov byte [esp + 0x45], 0
jmp 0x40816d
cmp bl, 0x73
jne 0x407e5a
mov esi, ecx
test ecx, ecx
jne 0x40816d
mov esi, str._null_
jmp 0x40816d
cmp bl, 0x77
jne 0x407e8e
cmp byte [ebp], 0x73
jne 0x407ed4
lea ebp, [edx + 2]
test ecx, ecx
je 0x407e50
push 0x5a
push ecx
call fcn.00407a24
mov ebx, eax
mov dword [esp + 0x30], ebx
mov esi, ebx
test ebx, ebx
jne 0x40816d
mov esi, str._InternalError_
jmp 0x40816d
cmp bl, 0x55
jne 0x407eb8
cmp byte [ebp], 0x38
jne 0x407ed4
cmp byte [edx + 2], 0x73
jne 0x407ed4
lea ebp, [edx + 3]
test ecx, ecx
je 0x407e50
push 0x55
push ecx
call fcn.00407b4f
mov dword [esp + 0x30], eax
mov esi, eax
test eax, eax
jmp 0x407e7e
cmp bl, 0x78
je 0x40809f
cmp bl, 0x58
je 0x40809f
cmp bl, 0x64
je 0x407ee4
cmp bl, 0x75
je 0x407ee4
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
push 0x25
pop eax
jmp 0x407d23
xor esi, esi
xor edx, edx
inc esi
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], esi
test edi, edi
jne 0x407f9d
cmp bl, 0x64
jne 0x407f08
test ecx, ecx
jns 0x407f08
neg ecx
mov dword [esp + 0x20], esi
lea esi, [esp + 0x63]
mov byte [esp + 0x63], dl
cmp dword [esp + 0x24], edx
jne 0x407f28
test ecx, ecx
jne 0x407f28
lea esi, [esp + 0x62]
mov byte [esp + 0x62], 0x30
jmp 0x40816d
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 0x407f69
cmp dword [esp + 0x14], 0
je 0x407f64
test ebp, ebp
je 0x407f64
mov eax, ebp
cdq
idiv dword [esp + 0x14]
mov eax, dword [esp + 0x24]
test edx, edx
jne 0x407f64
dec esi
mov byte [esi], 0x2c
dec esi
mov byte [esi], al
jmp 0x407f8d
test edi, edi
jne 0x407f7c
cmp eax, 0x30
jne 0x407f7c
cmp dword [esp + 0x28], edi
je 0x407f7c
test ecx, ecx
jne 0x407f8d
and dword [esp + 0x28], 0
dec esi
mov byte [esi], al
cmp ebp, 0xffffffff
jne 0x407f8d
dec esi
mov byte [esi], 0x2e
inc ebp
test ecx, ecx
jne 0x407f30
mov dword [esp + 0x1c], ebp
mov ecx, ebp
jmp 0x408062
mov edi, dword [eax]
xor ebp, ebp
add dword [esp + 0x74], 4
or ebp, ecx
or edi, edx
cmp bl, 0x64
jne 0x407fbd
cmp dword [eax], edx
jge 0x407fbd
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 0x407fe3
mov eax, ebp
or eax, edi
jne 0x407fe3
mov ebp, dword [esp + 0x70]
lea esi, [esp + 0x62]
mov byte [esp + 0x62], 0x30
jmp 0x40816d
lea eax, [esp + 0x18]
push eax
push 0xa
pop eax
push eax
push edi
push ebp
call fcn.00408884
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 0x40802d
cmp dword [esp + 0x14], 0
je 0x408028
test ecx, ecx
je 0x408028
mov eax, ecx
cdq
idiv dword [esp + 0x14]
test edx, edx
mov edx, dword [esp + 0x34]
jne 0x408028
dec esi
mov byte [esi], 0x2c
dec esi
mov byte [esi], dl
jmp 0x408057
cmp dword [esp + 0x24], 0
jne 0x408046
cmp edx, 0x30
jne 0x408046
cmp dword [esp + 0x28], 0
je 0x408046
mov eax, ebp
or eax, edi
jne 0x408057
and dword [esp + 0x28], 0
dec esi
mov byte [esi], dl
cmp ecx, 0xffffffff
jne 0x408057
dec esi
mov byte [esi], 0x2e
inc ecx
mov eax, ebp
or eax, edi
mov dword [esp + 0x1c], ecx
jne 0x407fe3
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x70]
test ecx, ecx
jns 0x40807f
neg ecx
dec esi
mov byte [esi], 0x30
sub ecx, 1
jne 0x408070
dec esi
mov byte [esi], 0x2e
jmp 0x408081
jne 0x408085
dec esi
mov byte [esi], 0x30
cmp bl, 0x64
jne 0x40816d
test edi, edi
je 0x40816d
dec esi
mov byte [esi], 0x2d
jmp 0x40816d
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 0x408106
xor ebp, ebp
mov edx, ecx
shr ecx, 4
and edx, 0xf
mov ebx, edx
cmp edx, 9
ja 0x4080d7
add ebx, 0x30
jmp 0x4080db
add ebx, dword [esp + 0x34]
cmp dword [esp + 0x14], 0
je 0x4080f4
cmp edx, 9
cmova edi, ebp
test edi, edi
je 0x4080f4
test al, 3
jne 0x4080f4
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 0x4080c3
jmp 0x408158
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 0x408137
add eax, 0x30
jmp 0x408139
add eax, ebp
test ebx, ebx
je 0x40814a
test ecx, ecx
je 0x40814a
test cl, 3
jne 0x40814a
dec esi
mov byte [esi], 0x2c
dec esi
inc ecx
mov byte [esi], al
mov eax, edi
or eax, edx
jne 0x408121
mov dword [esp + 0x18], ecx
cmp dword [esp + 0x28], 0
mov ebp, dword [esp + 0x70]
je 0x40816d
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 0x4081f8
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 0x4081b2
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 0x4081ba
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 0x40826b
add edi, ebx
dec eax
cmp eax, ebx
mov dword [esp + 0x10], edi
cmovle ebx, eax
test ebx, ebx
jle 0x40826b
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 0x40826b
mov ebx, dword [esp + 0x2c]
test ebx, ebx
je 0x40823a
sub ebx, edi
test ebx, ebx
jle 0x40823a
add dword [esp + 0x10], ebx
mov eax, dword [esp + 0x6c]
dec eax
cmp eax, ebx
cmovle ebx, eax
test ebx, ebx
jle 0x40823a
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 0x40823e
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 0x408267
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 0x407d07
push eax
call fcn.00404070
jmp 0x407cfb
mov dword [esp + 0x74], esi
mov eax, ecx
test ecx, ecx
je 0x4082bd
mov edx, dword [esp + 0x68]
xor ecx, ecx
inc edi
inc ecx
mov dword [esp + 0x10], edi
cmp ebx, ecx
jle 0x407d07
mov byte [edx], al
inc edx
dec ebx
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], ebx
jmp 0x407d07
test ebx, ebx
jle 0x4082c4
mov byte [edx], 0
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 0x10