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

Disassembly:
push 0xffffffffffffffff
push 0x421b50
mov eax, dword fs:[0]
push eax
sub esp, 0x50
mov eax, dword [0x4295c0]
xor eax, esp
mov dword [esp + 0x4c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4295c0]
xor eax, esp
push eax
lea eax, [esp + 0x64]
mov dword fs:[0], eax
mov eax, dword [esp + 0x88]
mov ebp, dword [esp + 0x78]
mov ebx, dword [esp + 0x80]
mov esi, dword [esp + 0x7c]
push eax
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ebx
call fcn.00405b00
mov edi, eax
add esp, 4
lea eax, [esp + 0x44]
push eax
mov ecx, edi
call fcn.00404630
cmp dword [esp + 0x54], 0
mov dword [esp + 0x6c], 0
jne 0x4072ed
mov byte [esp + 0x16], 0
jmp 0x4072fa
mov edx, dword [edi]
mov eax, dword [edx + 8]
mov ecx, edi
call eax
mov byte [esp + 0x16], al
push ebx
mov ecx, esi
mov dword [esp + 0x1c], ebp
call fcn.00402f80
test al, al
jne 0x40736d
cmp byte [esi + 4], al
jne 0x407347
mov ecx, dword [esi]
test ecx, ecx
je 0x40733d
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x40732c
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x40732c
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x407333
mov eax, dword [ecx]
mov edx, dword [eax + 0x18]
call edx
cmp eax, 0xffffffff
je 0x40733d
mov byte [esi + 5], al
jmp 0x407343
mov dword [esi], 0
mov byte [esi + 4], 1
cmp byte [esi + 5], 0x2b
mov ecx, esi
jne 0x407355
mov byte [ebp], 0x2b
jmp 0x407363
call fcn.004039a0
cmp al, 0x2d
jne 0x40736d
mov byte [ebp], al
mov ecx, esi
inc ebp
mov dword [esp + 0x18], ebp
call fcn.004039f0
mov eax, dword [esp + 0x84]
and eax, 0xe00
cmp eax, 0x400
jne 0x40738b
mov ebp, 8
mov dword [esp + 0x1c], ebp
jmp 0x4073aa
cmp eax, 0x800
jne 0x40739d
mov ebp, 0x10
mov dword [esp + 0x1c], ebp
jmp 0x4073aa
neg eax
sbb eax, eax
and eax, 0xa
mov ebp, eax
mov dword [esp + 0x1c], eax
push ebx
mov ecx, esi
mov byte [esp + 0x19], 0
mov byte [esp + 0x1b], 0
call fcn.00402f80
test al, al
jne 0x40747e
cmp byte [esi + 4], al
jne 0x407401
mov ecx, dword [esi]
test ecx, ecx
je 0x4073f7
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x4073e6
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x4073e6
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x4073ed
mov eax, dword [ecx]
mov edx, dword [eax + 0x18]
call edx
cmp eax, 0xffffffff
je 0x4073f7
mov byte [esi + 5], al
jmp 0x4073fd
mov dword [esi], 0
mov byte [esi + 4], 1
cmp byte [esi + 5], 0x30
jne 0x40747e
mov ecx, esi
mov byte [esp + 0x15], 1
call fcn.004039f0
push ebx
mov ecx, esi
call fcn.00402f80
test al, al
jne 0x407462
mov ecx, esi
call fcn.004039a0
cmp al, 0x78
je 0x407435
mov ecx, esi
call fcn.004039a0
cmp al, 0x58
jne 0x407462
test ebp, ebp
je 0x40743e
cmp ebp, 0x10
jne 0x407462
mov ebp, 0x10
mov ecx, esi
mov dword [esp + 0x1c], ebp
mov byte [esp + 0x15], 0
call fcn.004039f0
sub ebp, 8
neg ebp
sbb ebp, ebp
and ebp, 0xe
add ebp, 8
jmp 0x40749b
test ebp, ebp
jne 0x407482
mov ebp, 8
mov dword [esp + 0x1c], ebp
sub ebp, 8
neg ebp
sbb ebp, ebp
and ebp, 0xe
add ebp, 8
jmp 0x40749b
test ebp, ebp
je 0x407496
cmp ebp, 0xa
je 0x407496
sub ebp, 8
neg ebp
sbb ebp, ebp
and ebp, 0xe
add ebp, 8
jmp 0x40749b
mov ebp, 0xa
mov al, byte [esp + 0x15]
mov ebx, 0xf
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x28], al
mov dword [esp + 0x38], 1
mov byte [esp + 0x29], 0
mov ecx, dword [esp + 0x24]
push ecx
mov ecx, esi
mov byte [esp + 0x70], 1
xor edi, edi
call fcn.00402f80
test al, al
jne 0x407676
cmp byte [esi + 4], 0
jne 0x407512
mov ecx, dword [esi]
test ecx, ecx
je 0x407508
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x4074f7
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x4074f7
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x4074fe
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
call eax
cmp eax, 0xffffffff
je 0x407508
mov byte [esi + 5], al
jmp 0x40750e
mov dword [esi], 0
mov byte [esi + 4], 1
mov al, byte [esi + 5]
mov ecx, dword [esp + 0x18]
movsx edx, al
push ebp
push edx
push 0x423478
mov byte [ecx], al
call fcn.0040e2f0
add esp, 0xc
test eax, eax
je 0x407585
cmp byte [esp + 0x17], 0
jne 0x407541
mov eax, dword [esp + 0x18]
cmp byte [eax], 0x30
je 0x407557
mov eax, dword [esp + 0x20]
add eax, 0x1f
cmp dword [esp + 0x18], eax
jae 0x407557
inc dword [esp + 0x18]
mov byte [esp + 0x17], 1
mov eax, dword [esp + 0x28]
mov byte [esp + 0x15], 1
cmp ebx, 0x10
jae 0x407569
lea eax, [esp + 0x28]
cmp byte [eax + edi], 0x7f
je 0x407600
mov eax, dword [esp + 0x28]
cmp ebx, 0x10
jae 0x407580
lea eax, [esp + 0x28]
inc byte [eax + edi]
jmp 0x4075fc
mov eax, dword [esp + 0x28]
cmp ebx, 0x10
jae 0x407592
lea eax, [esp + 0x28]
cmp byte [eax + edi], 0
je 0x407657
cmp byte [esp + 0x16], 0
je 0x407657
cmp byte [esi + 4], 0
jne 0x4075e5
mov ecx, dword [esi]
test ecx, ecx
je 0x4075db
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x4075ca
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x4075ca
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x4075d1
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
call eax
cmp eax, 0xffffffff
je 0x4075db
mov byte [esi + 5], al
jmp 0x4075e1
mov dword [esi], 0
mov byte [esi + 4], 1
mov cl, byte [esp + 0x16]
cmp byte [esi + 5], cl
jne 0x407657
push 0
push 1
lea ecx, [esp + 0x30]
call fcn.00404c40
inc edi
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esi]
test ecx, ecx
je 0x407639
mov edx, dword [ecx + 0x20]
cmp dword [edx], 0
je 0x407627
mov eax, dword [ecx + 0x30]
cmp dword [eax], 0
jle 0x407627
dec dword [eax]
mov ecx, dword [ecx + 0x20]
mov eax, dword [ecx]
lea edx, [eax + 1]
mov dword [ecx], edx
movzx eax, byte [eax]
jmp 0x40762e
mov eax, dword [ecx]
mov edx, dword [eax + 0x1c]
call edx
cmp eax, 0xffffffff
je 0x407639
mov byte [esi + 4], 0
jmp 0x407643
mov dword [esi], 0
mov byte [esi + 4], 1
mov eax, dword [esp + 0x24]
push eax
mov ecx, esi
call fcn.00402f80
test al, al
je 0x4074d4
test edi, edi
je 0x407676
mov eax, dword [esp + 0x28]
cmp ebx, 0x10
jae 0x407668
lea eax, [esp + 0x28]
cmp byte [eax + edi], 0
jle 0x407671
inc edi
jmp 0x407676
mov byte [esp + 0x15], 0
mov edx, dword [esp + 0x44]
mov ebp, 0x10
cmp dword [esp + 0x58], ebp
jae 0x407689
lea edx, [esp + 0x44]
cmp byte [esp + 0x15], 0
mov esi, dword [esp + 0x28]
je 0x4076dd
test edi, edi
je 0x4076cc
mov cl, byte [edx]
cmp cl, 0x7f
je 0x4076cc
dec edi
je 0x4076b1
mov eax, esi
cmp ebx, ebp
jae 0x4076ac
lea eax, [esp + 0x28]
cmp cl, byte [eax + edi]
jne 0x4076dd
test edi, edi
jne 0x4076c3
mov eax, esi
cmp ebx, ebp
jae 0x4076bf
lea eax, [esp + 0x28]
cmp cl, byte [eax]
jl 0x4076dd
cmp byte [edx + 1], 0
jle 0x407694
inc edx
jmp 0x407694
cmp byte [esp + 0x17], 0
mov eax, dword [esp + 0x18]
jne 0x4076e1
mov byte [eax], 0x30
inc eax
jmp 0x4076e1
mov eax, dword [esp + 0x20]
mov byte [eax], 0
cmp ebx, ebp
jb 0x4076f1
push esi
call fcn.0040ca29
add esp, 4
cmp dword [esp + 0x58], ebp
jb 0x407704
mov ecx, dword [esp + 0x44]
push ecx
call fcn.0040ca29
add esp, 4
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x64]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x4c]
xor ecx, esp
call fcn.0040d639
add esp, 0x5c
ret