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

Disassembly:
push 0xffffffffffffffff
push 0x421b98
mov eax, dword fs:[0]
push eax
sub esp, 0x64
mov eax, dword [0x4295c0]
xor eax, esp
mov dword [esp + 0x60], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4295c0]
xor eax, esp
push eax
lea eax, [esp + 0x78]
mov dword fs:[0], eax
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x9c]
mov ebx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x98]
mov esi, dword [esp + 0x90]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x38]
push eax
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], edx
call fcn.00402450
push eax
mov dword [esp + 0x84], 0
call fcn.00405b00
mov ebp, dword [esp + 0x3c]
add esp, 4
mov edi, eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x80], 0xffffffff
test ebp, ebp
je 0x407807
push 0
lea ecx, [esp + 0x28]
call fcn.0040b652
mov eax, dword [ebp + 4]
test eax, eax
je 0x4077e3
cmp eax, 0xffffffff
jae 0x4077e3
dec eax
mov dword [ebp + 4], eax
mov edi, dword [ebp + 4]
neg edi
sbb edi, edi
lea ecx, [esp + 0x24]
not edi
call fcn.0040b67a
and edi, ebp
je 0x407803
mov edx, dword [edi]
mov eax, dword [edx]
push 1
mov ecx, edi
call eax
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
lea ecx, [esp + 0x58]
push ecx
mov ecx, edi
call fcn.00404630
push ebp
mov ecx, esi
mov dword [esp + 0x84], 1
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x22], 0
call fcn.00402f80
test al, al
jne 0x407898
cmp byte [esi + 4], al
jne 0x407874
mov ecx, dword [esi]
test ecx, ecx
je 0x40786a
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x407859
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x407859
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x407860
mov eax, dword [ecx]
mov edx, dword [eax + 0x18]
call edx
cmp eax, 0xffffffff
je 0x40786a
mov byte [esi + 5], al
jmp 0x407870
mov dword [esi], 0
mov byte [esi + 4], 1
cmp byte [esi + 5], 0x2b
mov ecx, esi
jne 0x407881
mov byte [ebx], 0x2b
jmp 0x40788e
call fcn.004039a0
cmp al, 0x2d
jne 0x407898
mov byte [ebx], al
mov ecx, esi
inc ebx
mov dword [esp + 0x18], ebx
call fcn.004039f0
mov eax, dword [esp + 0x18]
mov word [eax], 0x7830
add eax, 2
xor ebx, ebx
push ebp
mov ecx, esi
mov dword [esp + 0x1c], eax
mov byte [esp + 0x1b], 0
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], ebx
call fcn.00402f80
test al, al
jne 0x407937
cmp byte [esi + 4], bl
jne 0x4078fa
mov ecx, dword [esi]
cmp ecx, ebx
je 0x4078f4
mov eax, dword [ecx + 0x20]
cmp dword [eax], ebx
je 0x4078e3
mov edx, dword [ecx + 0x30]
cmp dword [edx], ebx
jle 0x4078e3
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x4078ea
mov eax, dword [ecx]
mov edx, dword [eax + 0x18]
call edx
cmp eax, 0xffffffff
je 0x4078f4
mov byte [esi + 5], al
jmp 0x4078f6
mov dword [esi], ebx
mov byte [esi + 4], 1
cmp byte [esi + 5], 0x30
jne 0x407937
mov ecx, esi
call fcn.004039f0
push ebp
mov ecx, eax
call fcn.00402f80
test al, al
jne 0x407932
mov ecx, esi
call fcn.004039a0
cmp al, 0x78
je 0x407929
mov ecx, esi
call fcn.004039a0
cmp al, 0x58
jne 0x407932
mov ecx, esi
call fcn.004039f0
jmp 0x407937
mov byte [esp + 0x17], 1
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x58]
mov eax, edx
cmp ecx, 0x10
jae 0x40794a
lea eax, [esp + 0x58]
cmp byte [eax], 0x7f
je 0x407c13
mov eax, edx
cmp ecx, 0x10
jae 0x40795e
lea eax, [esp + 0x58]
cmp byte [eax], bl
jle 0x407c13
cmp dword [esp + 0x68], ebx
jne 0x407972
mov byte [esp + 0x1f], bl
jmp 0x40797f
mov eax, dword [edi]
mov edx, dword [eax + 8]
mov ecx, edi
call edx
mov byte [esp + 0x1f], al
mov dword [esp + 0x50], 0xf
mov dword [esp + 0x4c], 1
mov word [esp + 0x3c], bx
push ebp
mov ecx, esi
mov byte [esp + 0x84], 2
xor ebx, ebx
call fcn.00402f80
test al, al
jne 0x407b3d
mov edi, edi
cmp byte [esi + 4], 0
jne 0x4079ee
mov ecx, dword [esi]
test ecx, ecx
je 0x4079e4
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x4079d3
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x4079d3
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x4079da
mov eax, dword [ecx]
mov edx, dword [eax + 0x18]
call edx
cmp eax, 0xffffffff
je 0x4079e4
mov byte [esi + 5], al
jmp 0x4079ea
mov dword [esi], 0
mov byte [esi + 4], 1
mov al, byte [esi + 5]
cmp al, 0x30
jl 0x407a02
movsx ecx, al
cmp ecx, 0x39
jg 0x407a02
lea edi, [ecx - 0x30]
jmp 0x407a22
cmp al, 0x61
jl 0x407a13
movsx ecx, al
cmp ecx, 0x66
jg 0x407a13
lea edi, [ecx - 0x57]
jmp 0x407a22
cmp al, 0x41
jl 0x407a88
movsx eax, al
cmp eax, 0x46
jg 0x407a88
lea edi, [eax - 0x37]
test edi, edi
js 0x407a88
mov ebp, dword [esp + 0x24]
mov byte [esp + 0x17], 1
cmp ebp, 0x24
jl 0x407a3a
inc dword [esp + 0x20]
jmp 0x407a5f
mov ecx, esi
call fcn.004039a0
cmp al, 0x30
jne 0x407a49
test ebp, ebp
je 0x407a5f
mov eax, dword [esp + 0x18]
mov cl, byte [edi + str.0123456789abcdef]
mov byte [eax], cl
inc eax
inc ebp
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], ebp
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x3c]
cmp ecx, 0x10
jae 0x407a70
lea eax, [esp + 0x3c]
cmp byte [eax + ebx], 0x7f
je 0x407ac1
mov eax, dword [esp + 0x3c]
cmp ecx, 0x10
jae 0x407a83
lea eax, [esp + 0x3c]
inc byte [eax + ebx]
jmp 0x407ac1
cmp dword [esp + 0x50], 0x10
mov ebp, dword [esp + 0x3c]
mov eax, ebp
jae 0x407a99
lea eax, [esp + 0x3c]
cmp byte [eax + ebx], 0
je 0x407b1c
cmp byte [esp + 0x1f], 0
je 0x407b1c
mov ecx, esi
call fcn.004039a0
cmp al, byte [esp + 0x1f]
jne 0x407b1c
push 0
push 1
lea ecx, [esp + 0x44]
call fcn.00404c40
inc ebx
mov ecx, dword [esi]
test ecx, ecx
je 0x407afa
mov edx, dword [ecx + 0x20]
cmp dword [edx], 0
je 0x407ae8
mov eax, dword [ecx + 0x30]
cmp dword [eax], 0
jle 0x407ae8
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 0x407aef
mov eax, dword [ecx]
mov edx, dword [eax + 0x1c]
call edx
cmp eax, 0xffffffff
je 0x407afa
mov byte [esi + 4], 0
jmp 0x407b04
mov dword [esi], 0
mov byte [esi + 4], 1
mov eax, dword [esp + 0x28]
push eax
mov ecx, esi
call fcn.00402f80
test al, al
je 0x4079b0
mov ebp, dword [esp + 0x3c]
test ebx, ebx
je 0x407b41
cmp dword [esp + 0x50], 0x10
mov eax, ebp
jae 0x407b2d
lea eax, [esp + 0x3c]
cmp byte [eax + ebx], 0
jle 0x407b36
inc ebx
jmp 0x407b41
mov byte [esp + 0x1e], 1
jmp 0x407b41
mov ebp, dword [esp + 0x3c]
cmp dword [esp + 0x6c], 0x10
mov edx, dword [esp + 0x58]
jae 0x407b50
lea edx, [esp + 0x58]
cmp byte [esp + 0x1e], 0
mov edi, dword [esp + 0x50]
jne 0x407b9a
test ebx, ebx
je 0x407b9a
mov cl, byte [edx]
cmp cl, 0x7f
je 0x407b9a
dec ebx
je 0x407b79
mov eax, ebp
cmp edi, 0x10
jae 0x407b74
lea eax, [esp + 0x3c]
cmp cl, byte [eax + ebx]
jne 0x407b95
test ebx, ebx
jne 0x407b8c
mov eax, ebp
cmp edi, 0x10
jae 0x407b88
lea eax, [esp + 0x3c]
cmp cl, byte [eax]
jl 0x407b95
cmp byte [edx + 1], 0
jle 0x407b5b
inc edx
jmp 0x407b5b
mov byte [esp + 0x1e], 1
mov byte [esp + 0x80], 1
cmp edi, 0x10
jb 0x407bb0
push ebp
call fcn.0040ca29
add esp, 4
mov ebp, dword [esp + 0x28]
cmp byte [esp + 0x17], 0
je 0x407bce
cmp dword [esp + 0x24], 0
jne 0x407bce
mov eax, dword [esp + 0x18]
mov byte [eax], 0x30
inc eax
mov dword [esp + 0x18], eax
push ebp
mov ecx, esi
call fcn.00402f80
test al, al
jne 0x407df2
cmp byte [esi + 4], al
jne 0x407d87
mov ecx, dword [esi]
test ecx, ecx
je 0x407d7d
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x407d6c
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x407d6c
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x407d73
push ebp
mov ecx, esi
call fcn.00402f80
test al, al
jne 0x407bb4
nop
cmp byte [esi + 4], 0
jne 0x407c5e
mov ecx, dword [esi]
test ecx, ecx
je 0x407c54
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x407c43
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x407c43
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x407c4a
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
call eax
cmp eax, 0xffffffff
je 0x407c54
mov byte [esi + 5], al
jmp 0x407c5a
mov dword [esi], 0
mov byte [esi + 4], 1
mov al, byte [esi + 5]
cmp al, 0x30
jl 0x407c72
movsx ecx, al
cmp ecx, 0x39
jg 0x407c72
lea ebx, [ecx - 0x30]
jmp 0x407c9a
cmp al, 0x61
jl 0x407c83
movsx ecx, al
cmp ecx, 0x66
jg 0x407c83
lea ebx, [ecx - 0x57]
jmp 0x407c9a
cmp al, 0x41
jl 0x407bb4
movsx eax, al
cmp eax, 0x46
jg 0x407bb4
lea ebx, [eax - 0x37]
test ebx, ebx
js 0x407bb4
mov edi, dword [esp + 0x24]
cmp edi, 0x24
jl 0x407cb1
inc dword [esp + 0x20]
jmp 0x407d0f
cmp byte [esi + 4], 0
jne 0x407cef
mov ecx, dword [esi]
test ecx, ecx
je 0x407ce5
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x407cd4
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x407cd4
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x407cdb
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
call eax
cmp eax, 0xffffffff
je 0x407ce5
mov byte [esi + 5], al
jmp 0x407ceb
mov dword [esi], 0
mov byte [esi + 4], 1
cmp byte [esi + 5], 0x30
jne 0x407cf9
test edi, edi
je 0x407d0f
mov eax, dword [esp + 0x18]
mov cl, byte [ebx + str.0123456789abcdef]
mov byte [eax], cl
inc eax
inc edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], edi
mov ecx, dword [esi]
mov byte [esp + 0x17], 1
test ecx, ecx
je 0x407d4d
mov edx, dword [ecx + 0x20]
cmp dword [edx], 0
je 0x407d3b
mov eax, dword [ecx + 0x30]
cmp dword [eax], 0
jle 0x407d3b
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 0x407d42
mov eax, dword [ecx]
mov edx, dword [eax + 0x1c]
call edx
cmp eax, 0xffffffff
je 0x407d4d
mov byte [esi + 4], 0
jmp 0x407d57
mov dword [esi], 0
mov byte [esi + 4], 1
push ebp
mov ecx, esi
call fcn.00402f80
test al, al
je 0x407c20
jmp 0x407bbb
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
call eax
cmp eax, 0xffffffff
je 0x407d7d
mov byte [esi + 5], al
jmp 0x407d83
mov dword [esi], 0
mov byte [esi + 4], 1
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
mov bl, byte [esi + 5]
call eax
cmp bl, al
jne 0x407df2
call fcn.0040dcba
mov ecx, dword [eax]
mov eax, dword [esp + 0x18]
mov dl, byte [ecx]
mov byte [eax], dl
mov ecx, dword [esi]
inc eax
mov dword [esp + 0x18], eax
test ecx, ecx
je 0x407de8
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x407dd6
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x407dd6
mov eax, edx
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 0x407ddd
mov eax, dword [ecx]
mov edx, dword [eax + 0x1c]
call edx
cmp eax, 0xffffffff
je 0x407de8
mov byte [esi + 4], 0
jmp 0x407df2
mov dword [esi], 0
mov byte [esi + 4], 1
cmp dword [esp + 0x24], 0
mov ebp, dword [esp + 0x28]
jne 0x407eca
push ebp
mov ecx, esi
call fcn.00402f80
mov edi, dword [esp + 0x20]
test al, al
jne 0x407eb6
cmp byte [esi + 4], 0
jne 0x407e53
mov ecx, dword [esi]
test ecx, ecx
je 0x407e49
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x407e38
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x407e38
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x407e3f
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
call eax
cmp eax, 0xffffffff
je 0x407e49
mov byte [esi + 5], al
jmp 0x407e4f
mov dword [esi], 0
mov byte [esi + 4], 1
cmp byte [esi + 5], 0x30
jne 0x407eb2
mov ecx, dword [esi]
dec edi
mov byte [esp + 0x17], 1
test ecx, ecx
je 0x407e98
mov edx, dword [ecx + 0x20]
cmp dword [edx], 0
je 0x407e86
mov eax, dword [ecx + 0x30]
cmp dword [eax], 0
jle 0x407e86
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 0x407e8d
mov eax, dword [ecx]
mov edx, dword [eax + 0x1c]
call edx
cmp eax, 0xffffffff
je 0x407e98
mov byte [esi + 4], 0
jmp 0x407ea2
mov dword [esi], 0
mov byte [esi + 4], 1
push ebp
mov ecx, esi
call fcn.00402f80
test al, al
je 0x407e15
mov dword [esp + 0x20], edi
test edi, edi
jns 0x407eca
mov eax, dword [esp + 0x18]
mov byte [eax], 0x30
inc eax
inc dword [esp + 0x20]
mov dword [esp + 0x18], eax
push ebp
mov ecx, esi
call fcn.00402f80
test al, al
jne 0x408005
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x24]
cmp byte [esi + 4], 0
jne 0x407f20
mov ecx, dword [esi]
test ecx, ecx
je 0x407f16
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x407f05
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x407f05
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x407f0c
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
call eax
cmp eax, 0xffffffff
je 0x407f16
mov byte [esi + 5], al
jmp 0x407f1c
mov dword [esi], 0
mov byte [esi + 4], 1
mov al, byte [esi + 5]
cmp al, 0x30
jl 0x407f34
movsx ecx, al
cmp ecx, 0x39
jg 0x407f34
lea eax, [ecx - 0x30]
jmp 0x407f5c
cmp al, 0x61
jl 0x407f45
movsx ecx, al
cmp ecx, 0x66
jg 0x407f45
lea eax, [ecx - 0x57]
jmp 0x407f5c
cmp al, 0x41
jl 0x408001
movsx eax, al
cmp eax, 0x46
jg 0x408001
add eax, 0xffffffc9
test eax, eax
js 0x408001
cmp ebx, 0x24
jge 0x407f73
mov cl, byte [eax + str.0123456789abcdef]
mov byte [edi], cl
inc edi
inc ebx
mov ecx, dword [esi]
mov byte [esp + 0x17], 1
test ecx, ecx
je 0x407fb1
mov edx, dword [ecx + 0x20]
cmp dword [edx], 0
je 0x407f9f
mov eax, dword [ecx + 0x30]
cmp dword [eax], 0
jle 0x407f9f
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 0x407fa6
mov eax, dword [ecx]
mov edx, dword [eax + 0x1c]
call edx
cmp eax, 0xffffffff
je 0x407fb1
mov byte [esi + 4], 0
jmp 0x407fbb
mov dword [esi], 0
mov byte [esi + 4], 1
push ebp
mov ecx, esi
call fcn.00402f80
test al, al
je 0x407ee2
mov dword [esp + 0x18], edi
push ebp
mov ecx, esi
call fcn.00402f80
test al, al
jne 0x4083a6
cmp byte [esi + 4], al
jne 0x40802d
mov ecx, dword [esi]
test ecx, ecx
je 0x408023
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x408012
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x408012
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x408019
mov dword [esp + 0x18], edi
cmp byte [esp + 0x17], 0
je 0x4083a6
jmp 0x407fcf
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
call eax
cmp eax, 0xffffffff
je 0x408023
mov byte [esi + 5], al
jmp 0x408029
mov dword [esi], 0
mov byte [esi + 4], 1
cmp byte [esi + 5], 0x70
je 0x40807b
cmp byte [esi + 4], 0
jne 0x408071
mov ecx, dword [esi]
test ecx, ecx
je 0x408067
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x408056
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x408056
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x40805d
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
call eax
cmp eax, 0xffffffff
je 0x408067
mov byte [esi + 5], al
jmp 0x40806d
mov dword [esi], 0
mov byte [esi + 4], 1
cmp byte [esi + 5], 0x50
jne 0x4083a6
mov edi, dword [esp + 0x18]
mov byte [edi], 0x70
mov ecx, dword [esi]
inc edi
mov dword [esp + 0x18], edi
test ecx, ecx
je 0x4080c0
mov edx, dword [ecx + 0x20]
cmp dword [edx], 0
je 0x4080ae
mov eax, dword [ecx + 0x30]
cmp dword [eax], 0
jle 0x4080ae
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 0x4080b5
mov eax, dword [ecx]
mov edx, dword [eax + 0x1c]
call edx
cmp eax, 0xffffffff
je 0x4080c0
mov byte [esi + 4], 0
jmp 0x4080ca
mov dword [esi], 0
mov byte [esi + 4], 1
push ebp
mov ecx, esi
mov byte [esp + 0x1b], 0
xor ebx, ebx
call fcn.00402f80
test al, al
jne 0x4081a4
cmp byte [esi + 4], bl
jne 0x408118
mov ecx, dword [esi]
test ecx, ecx
je 0x408112
mov eax, dword [ecx + 0x20]
cmp dword [eax], ebx
je 0x408101
mov edx, dword [ecx + 0x30]
cmp dword [edx], ebx
jle 0x408101
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x408108
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
call eax
cmp eax, 0xffffffff
je 0x408112
mov byte [esi + 5], al
jmp 0x408114
mov dword [esi], ebx
mov byte [esi + 4], 1
cmp byte [esi + 5], 0x2b
jne 0x408123
mov byte [edi], 0x2b
jmp 0x408163
cmp byte [esi + 4], bl
jne 0x40815a
mov ecx, dword [esi]
test ecx, ecx
je 0x408154
mov eax, dword [ecx + 0x20]
cmp dword [eax], ebx
je 0x408143
mov edx, dword [ecx + 0x30]
cmp dword [edx], ebx
jle 0x408143
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x40814a
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
call eax
cmp eax, 0xffffffff
je 0x408154
mov byte [esi + 5], al
jmp 0x408156
mov dword [esi], ebx
mov byte [esi + 4], 1
cmp byte [esi + 5], 0x2d
jne 0x4081a4
mov byte [edi], 0x2d
mov ecx, dword [esi]
inc edi
mov dword [esp + 0x18], edi
test ecx, ecx
je 0x40819e
mov edx, dword [ecx + 0x20]
cmp dword [edx], ebx
je 0x40818d
mov eax, dword [ecx + 0x30]
cmp dword [eax], ebx
jle 0x40818d
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 0x408194
mov eax, dword [ecx]
mov edx, dword [eax + 0x1c]
call edx
cmp eax, 0xffffffff
je 0x40819e
mov byte [esi + 4], bl
jmp 0x4081a4
mov byte [esi + 4], 1
mov dword [esi], ebx
push ebp
mov ecx, esi
call fcn.00402f80
test al, al
jne 0x408256
cmp byte [esi + 4], bl
jne 0x4081eb
mov ecx, dword [esi]
test ecx, ecx
je 0x4081e5
mov eax, dword [ecx + 0x20]
cmp dword [eax], ebx
je 0x4081d4
mov edx, dword [ecx + 0x30]
cmp dword [edx], ebx
jle 0x4081d4
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x4081db
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
call eax
cmp eax, 0xffffffff
je 0x4081e5
mov byte [esi + 5], al
jmp 0x4081e7
mov dword [esi], ebx
mov byte [esi + 4], 1
cmp byte [esi + 5], 0x30
jne 0x408244
mov ecx, dword [esi]
mov byte [esp + 0x17], 1
test ecx, ecx
je 0x40822c
mov edx, dword [ecx + 0x20]
cmp dword [edx], ebx
je 0x40821b
mov eax, dword [ecx + 0x30]
cmp dword [eax], ebx
jle 0x40821b
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 0x408222
mov eax, dword [ecx]
mov edx, dword [eax + 0x1c]
call edx
cmp eax, 0xffffffff
je 0x40822c
mov byte [esi + 4], bl
jmp 0x408232
mov dword [esi], ebx
mov byte [esi + 4], 1
push ebp
mov ecx, esi
call fcn.00402f80
test al, al
je 0x4081b4
jmp 0x40824a
cmp byte [esp + 0x17], bl
je 0x408256
mov eax, dword [esp + 0x18]
mov byte [eax], 0x30
inc eax
mov dword [esp + 0x18], eax
push ebp
mov ecx, esi
call fcn.00402f80
test al, al
jne 0x4083a6
mov edi, dword [esp + 0x18]
lea ebx, [ebx]
cmp byte [esi + 4], 0
jne 0x4082ae
mov ecx, dword [esi]
test ecx, ecx
je 0x4082a4
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x408293
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x408293
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x40829a
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
call eax
cmp eax, 0xffffffff
je 0x4082a4
mov byte [esi + 5], al
jmp 0x4082aa
mov dword [esi], 0
mov byte [esi + 4], 1
cmp byte [esi + 5], 0x30
jl 0x4083a2
cmp byte [esi + 4], 0
jne 0x4082f6
mov ecx, dword [esi]
test ecx, ecx
je 0x4082ec
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x4082db
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x4082db
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x4082e2
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
call eax
cmp eax, 0xffffffff
je 0x4082ec
mov byte [esi + 5], al
jmp 0x4082f2
mov dword [esi], 0
mov byte [esi + 4], 1
cmp byte [esi + 5], 0x39
jg 0x4083a2
cmp ebx, 8
jge 0x40834a
cmp byte [esi + 4], 0
jne 0x408343
mov ecx, dword [esi]
test ecx, ecx
je 0x408339
mov eax, dword [ecx + 0x20]
cmp dword [eax], 0
je 0x408328
mov edx, dword [ecx + 0x30]
cmp dword [edx], 0
jle 0x408328
mov eax, dword [eax]
movzx eax, byte [eax]
jmp 0x40832f
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
call eax
cmp eax, 0xffffffff
je 0x408339
mov byte [esi + 5], al
jmp 0x40833f
mov dword [esi], 0
mov byte [esi + 4], 1
mov cl, byte [esi + 5]
mov byte [edi], cl
inc edi
inc ebx
mov ecx, dword [esi]
mov byte [esp + 0x17], 1
test ecx, ecx
je 0x408388
mov edx, dword [ecx + 0x20]
cmp dword [edx], 0
je 0x408376
mov eax, dword [ecx + 0x30]
cmp dword [eax], 0
jle 0x408376
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 0x40837d
mov eax, dword [ecx]
mov edx, dword [eax + 0x1c]
call edx
cmp eax, 0xffffffff
je 0x408388
mov byte [esi + 4], 0
jmp 0x408392
mov dword [esi], 0
mov byte [esi + 4], 1
push ebp
mov ecx, esi
call fcn.00402f80
test al, al
je 0x408270
mov dword [esp + 0x18], edi
cmp byte [esp + 0x1e], 0
jne 0x4083b4
cmp byte [esp + 0x17], 0
jne 0x4083ba
mov eax, dword [esp + 0x30]
jmp 0x4083be
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x6c], 0x10
mov ecx, dword [esp + 0x20]
mov byte [eax], 0
mov eax, dword [esp + 0x34]
mov dword [eax], ecx
jb 0x4083df
mov edx, dword [esp + 0x58]
push edx
call fcn.0040ca29
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.0040d639
add esp, 0x70
ret