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

Disassembly:
sub esp, 0x84
mov eax, dword [0x43b040]
xor eax, esp
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x88]
push ebx
push ebp
mov ebp, dword [esp + 0x9c]
push esi
mov esi, dword [esp + 0xa4]
push edi
mov edi, dword [esp + 0xa0]
push esi
mov dword [esp + 0x18], eax
call fcn.00404bc0
add esp, 4
lea ecx, [esp + 0x70]
mov edx, dword [eax]
push ecx
push 0x42d4ad
push str.0123456789ABCDEFabcdef_XxPp
mov ecx, eax
call dword [edx + 0x1c]
mov al, byte [esp + 0x87]
mov byte [esp + 0x19], al
mov al, byte [esp + 0x86]
mov byte [esp + 0x1a], al
mov al, byte [esp + 0x70]
push esi
mov byte [esp + 0x1c], al
call fcn.004050a0
mov ebx, eax
add esp, 4
lea eax, [esp + 0x58]
mov dword [esp + 0x2c], ebx
mov ecx, ebx
mov edx, dword [ebx]
push eax
call dword [edx + 0x14]
cmp dword [esp + 0x68], 0
jne 0x4024e6
xor bl, bl
mov byte [esp + 0x13], bl
mov byte [esp + 0x12], bl
cmp byte [edi + 4], 0
jne 0x402649
mov ecx, dword [edi]
test ecx, ecx
je 0x40263f
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402630
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402630
movzx eax, byte [edx]
jmp 0x402635
mov eax, dword [ebx]
mov ecx, ebx
mov eax, dword [eax + 0x10]
call eax
cmp dword [esp + 0x68], 0
mov bl, al
mov byte [esp + 0x13], bl
mov byte [esp + 0x12], 0
je 0x4024b1
mov ecx, dword [edi]
cmp byte [edi + 4], 0
jne 0x40253c
test ecx, ecx
je 0x402532
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402523
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402523
movzx eax, byte [edx]
jmp 0x402528
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402532
mov byte [edi + 5], al
jmp 0x402538
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [ebp + 4], 0
jne 0x402579
mov ecx, dword [ebp]
test ecx, ecx
je 0x40256e
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x40255f
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x40255f
movzx eax, byte [edx]
jmp 0x402564
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x40256e
mov byte [ebp + 5], al
jmp 0x402575
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov ecx, dword [edi]
mov eax, dword [ebp]
test ecx, ecx
jne 0x40258c
test eax, eax
je 0x4024b1
jmp 0x402594
test eax, eax
jne 0x4024b1
cmp byte [edi + 4], 0
jne 0x4025cd
test ecx, ecx
je 0x4025c3
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x4025b4
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4025b4
movzx eax, byte [edx]
jmp 0x4025b9
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x4025c3
mov byte [edi + 5], al
jmp 0x4025c9
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [edi + 5], bl
jne 0x4024b1
mov ecx, dword [edi]
test ecx, ecx
je 0x40261a
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x4025ff
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x4025ff
dec eax
mov dword [edx], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
movzx eax, byte [edx]
jmp 0x402604
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x40261a
mov ecx, dword [edi]
xor al, al
mov byte [edi + 4], al
mov byte [esp + 0x12], 1
jmp 0x402503
mov al, 1
mov dword [edi], 0
xor ecx, ecx
mov byte [edi + 4], al
mov byte [esp + 0x12], al
jmp 0x402503
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x40263f
mov byte [edi + 5], al
jmp 0x402645
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [ebp + 4], 0
jne 0x402686
mov ecx, dword [ebp]
test ecx, ecx
je 0x40267b
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x40266c
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x40266c
movzx eax, byte [edx]
jmp 0x402671
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x40267b
mov byte [ebp + 5], al
jmp 0x402682
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov ecx, dword [edi]
mov eax, dword [ebp]
test ecx, ecx
jne 0x4026e2
test eax, eax
jne 0x4026e6
mov esi, dword [esp + 0x14]
xor bh, bh
mov byte [esi], 0x30
inc esi
mov byte [esp + 0x11], 0
mov dword [esp + 0x14], esi
mov byte [esp + 0x10], bh
mov byte [esp + 0x1c], bh
cmp byte [edi + 4], bh
jne 0x4027f3
mov ecx, dword [edi]
test ecx, ecx
je 0x4027e9
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x4027da
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4027da
movzx eax, byte [edx]
jmp 0x4027df
test eax, eax
jne 0x402693
mov dl, byte [edi + 4]
test dl, dl
jne 0x402722
test ecx, ecx
je 0x402716
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402707
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402707
movzx eax, byte [edx]
jmp 0x40270c
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402716
mov byte [edi + 5], al
jmp 0x40271c
mov dword [edi], 0
mov byte [edi + 4], 1
mov dl, 1
mov al, byte [edi + 5]
cmp al, byte [esp + 0x19]
jne 0x402780
mov esi, dword [esp + 0x14]
mov byte [esi], 0x2b
inc esi
mov ecx, dword [edi]
test ecx, ecx
je 0x402770
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x40275c
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x40275c
dec eax
mov dword [edx], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
movzx eax, byte [edx]
jmp 0x402761
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x402770
xor al, al
mov byte [edi + 4], al
jmp 0x402697
mov al, 1
mov dword [edi], 0
mov byte [edi + 4], al
jmp 0x402697
test dl, dl
jne 0x4027bc
mov ecx, dword [edi]
test ecx, ecx
je 0x4027af
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x4027a0
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4027a0
movzx eax, byte [edx]
jmp 0x4027a5
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x4027af
mov byte [edi + 5], al
jmp 0x4027b8
mov al, byte [edi + 5]
mov dword [edi], 0
mov byte [edi + 4], 1
mov esi, dword [esp + 0x14]
cmp al, byte [esp + 0x1a]
jne 0x402697
mov byte [esi], 0x2d
mov ecx, edi
inc esi
call fcn.00405bd0
jmp 0x402697
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x4027e9
mov byte [edi + 5], al
jmp 0x4027ef
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [ebp + 4], 0
jne 0x402830
mov ecx, dword [ebp]
test ecx, ecx
je 0x402825
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402816
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402816
movzx eax, byte [edx]
jmp 0x40281b
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402825
mov byte [ebp + 5], al
jmp 0x40282c
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov ecx, dword [edi]
mov eax, dword [ebp]
test ecx, ecx
jne 0x402843
test eax, eax
je 0x4029d6
jmp 0x40284b
test eax, eax
jne 0x4029d6
cmp byte [edi + 4], 0
jne 0x402884
test ecx, ecx
je 0x40287a
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x40286b
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x40286b
movzx eax, byte [edx]
jmp 0x402870
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x40287a
mov byte [edi + 5], al
jmp 0x402880
mov dword [edi], 0
mov byte [edi + 4], 1
mov al, byte [esp + 0x18]
cmp byte [edi + 5], al
jne 0x4029d6
mov ecx, dword [edi]
test ecx, ecx
je 0x4028f3
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x4028ba
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x4028ba
dec eax
mov dword [edx], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
movzx eax, byte [edx]
jmp 0x4028bf
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x4028f3
mov byte [edi + 4], 0
mov ecx, dword [edi]
test ecx, ecx
je 0x4028f3
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x4028e4
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4028e4
movzx eax, byte [edx]
jmp 0x4028e9
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x4028f3
mov byte [edi + 5], al
jmp 0x4028f9
mov dword [edi], 0
mov al, 1
mov byte [edi + 4], al
cmp byte [ebp + 4], 0
jne 0x40293b
mov ecx, dword [ebp]
test ecx, ecx
je 0x402930
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402921
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402921
movzx eax, byte [edx]
jmp 0x402926
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402930
mov byte [ebp + 5], al
jmp 0x402937
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov ecx, dword [edi]
mov eax, dword [ebp]
test ecx, ecx
jne 0x402968
test eax, eax
je 0x40296c
cmp byte [edi + 4], 0
jne 0x40299a
test ecx, ecx
je 0x402990
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402981
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402981
movzx eax, byte [edx]
jmp 0x402986
test eax, eax
je 0x402948
movzx eax, byte [esp + 0x12]
shl ax, 8
mov byte [esi], 0
or ax, 0xa
jmp 0x403cc2
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402990
mov byte [edi + 5], al
jmp 0x402996
mov dword [edi], 0
mov byte [edi + 4], 1
mov al, byte [edi + 5]
cmp al, byte [esp + 0x89]
je 0x4029c2
mov ecx, edi
call fcn.00405b80
cmp al, byte [esp + 0x88]
je 0x4029c2
mov dl, 1
mov byte [esp + 0x10], dl
mov byte [esp + 0x1c], dl
jmp 0x4029d6
mov ecx, edi
mov byte [esp + 0x11], 1
call fcn.00405bd0
mov byte [esi], 0x78
inc esi
mov dword [esp + 0x14], esi
xor al, al
xor esi, esi
cmp byte [esp + 0x11], 0
mov ecx, 0x16
mov dword [esp + 0x38], eax
mov eax, 0xa
cmovne eax, ecx
mov dword [esp + 0x34], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x30], eax
cmp dword [esp + 0x68], esi
jne 0x402b86
mov ebx, eax
cmp byte [edi + 4], 0
jne 0x402a43
mov ecx, dword [edi]
test ecx, ecx
je 0x402a39
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402a2a
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402a2a
movzx eax, byte [edx]
jmp 0x402a2f
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402a39
mov byte [edi + 5], al
jmp 0x402a3f
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [ebp + 4], 0
jne 0x402a80
mov ecx, dword [ebp]
test ecx, ecx
je 0x402a75
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402a66
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402a66
movzx eax, byte [edx]
jmp 0x402a6b
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402a75
mov byte [ebp + 5], al
jmp 0x402a7c
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov ecx, dword [edi]
mov eax, dword [ebp]
test ecx, ecx
jne 0x402a93
test eax, eax
je 0x4030e0
jmp 0x402a9b
test eax, eax
jne 0x4030e0
cmp byte [edi + 4], 0
jne 0x402ad4
test ecx, ecx
je 0x402aca
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402abb
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402abb
movzx eax, byte [edx]
jmp 0x402ac0
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402aca
mov byte [edi + 5], al
jmp 0x402ad0
mov dword [edi], 0
mov byte [edi + 4], 1
mov al, byte [edi + 5]
mov byte [esp + 0x1c], al
lea eax, [esp + 0x8c]
push dword [esp + 0x1c]
push eax
lea eax, [esp + 0x78]
push eax
call fcn.00409030
lea ecx, [esp + 0x70]
sub eax, ecx
cmp eax, ebx
jae 0x4030e0
cmp esi, dword [esp + 0x9c]
jl 0x402b18
inc dword [esp + 0x20]
test eax, eax
je 0x402b36
mov al, 1
mov dword [esp + 0x38], eax
jmp 0x402b36
test eax, eax
jne 0x402b20
test esi, esi
je 0x402b36
mov ecx, dword [esp + 0x14]
mov al, byte [eax + str.0123456789ABCDEFabcdef_XxPp]
mov byte [ecx], al
inc ecx
inc esi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x34], esi
mov ecx, dword [edi]
mov byte [esp + 0x10], 1
test ecx, ecx
je 0x402b77
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x402b64
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x402b64
dec eax
mov dword [edx], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
movzx eax, byte [edx]
jmp 0x402b69
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x402b77
mov byte [edi + 4], 0
jmp 0x402a08
mov dword [edi], 0
mov byte [edi + 4], 1
jmp 0x402a08
cmp byte [edi + 4], 0
jne 0x402bbc
mov ecx, dword [edi]
test ecx, ecx
je 0x402bb6
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402ba7
mov eax, dword [ecx + 0x2c]
cmp dword [eax], esi
jle 0x402ba7
movzx eax, byte [edx]
jmp 0x402bac
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402bb6
mov byte [edi + 5], al
jmp 0x402bb8
mov dword [edi], esi
mov byte [edi + 4], 1
cmp byte [ebp + 4], 0
jne 0x402bf4
mov ecx, dword [ebp]
test ecx, ecx
je 0x402bed
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402bde
mov eax, dword [ecx + 0x2c]
cmp dword [eax], esi
jle 0x402bde
movzx eax, byte [edx]
jmp 0x402be3
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402bed
mov byte [ebp + 5], al
jmp 0x402bf0
mov dword [ebp], esi
mov byte [ebp + 4], 1
mov ecx, dword [edi]
mov eax, dword [ebp]
test ecx, ecx
jne 0x402c57
test eax, eax
jne 0x402c5b
push dword [esp + 0x1c]
lea ecx, [esp + 0x44]
push 1
call fcn.004051a0
mov esi, dword [esp + 0x54]
xor ebx, ebx
mov eax, dword [esp + 0x40]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x28], eax
cmp byte [edi + 4], 0
jne 0x402d02
mov ecx, dword [edi]
test ecx, ecx
je 0x402cf8
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402ce9
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402ce9
movzx eax, byte [edx]
jmp 0x402cee
test eax, eax
jne 0x402c01
cmp byte [edi + 4], 0
jne 0x402c8f
test ecx, ecx
je 0x402c89
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402c7a
mov eax, dword [ecx + 0x2c]
cmp dword [eax], esi
jle 0x402c7a
movzx eax, byte [edx]
jmp 0x402c7f
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402c89
mov byte [edi + 5], al
jmp 0x402c8b
mov dword [edi], esi
mov byte [edi + 4], 1
cmp byte [edi + 5], bl
jne 0x402c01
mov ecx, dword [edi]
test ecx, ecx
je 0x402cd9
mov eax, dword [ecx + 0x1c]
cmp dword [eax], esi
je 0x402cc0
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x402cc0
dec eax
mov dword [edx], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
movzx eax, byte [edx]
jmp 0x402cc5
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x402cd9
xor al, al
mov byte [esp + 0x12], 1
mov byte [edi + 4], al
jmp 0x402b86
mov al, 1
mov dword [edi], esi
mov byte [edi + 4], al
mov byte [esp + 0x12], al
jmp 0x402b86
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402cf8
mov byte [edi + 5], al
jmp 0x402cfe
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [ebp + 4], 0
jne 0x402d3f
mov ecx, dword [ebp]
test ecx, ecx
je 0x402d34
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402d25
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402d25
movzx eax, byte [edx]
jmp 0x402d2a
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402d34
mov byte [ebp + 5], al
jmp 0x402d3b
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov ecx, dword [edi]
mov eax, dword [ebp]
test ecx, ecx
jne 0x402d7c
test eax, eax
jne 0x402d80
mov dword [esp + 0x3c], esi
mov dword [esp + 0x1c], ebx
test ebx, ebx
je 0x402f12
cmp esi, 0xf
lea eax, [esp + 0x40]
cmova eax, dword [esp + 0x28]
cmp byte [eax + ebx], 0
jle 0x402f0d
inc ebx
mov dword [esp + 0x1c], ebx
jmp 0x402f12
test eax, eax
jne 0x402d4c
cmp byte [edi + 4], 0
jne 0x402db9
test ecx, ecx
je 0x402daf
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402da0
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402da0
movzx eax, byte [edx]
jmp 0x402da5
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402daf
mov byte [edi + 5], al
jmp 0x402db5
mov dword [edi], 0
mov byte [edi + 4], 1
mov al, byte [edi + 5]
mov byte [esp + 0x1c], al
lea eax, [esp + 0x8c]
push dword [esp + 0x1c]
push eax
lea eax, [esp + 0x78]
push eax
call fcn.00409030
lea ecx, [esp + 0x70]
sub eax, ecx
cmp eax, dword [esp + 0x30]
jae 0x402e49
mov ecx, dword [esp + 0x34]
mov byte [esp + 0x10], 1
cmp ecx, dword [esp + 0x9c]
jl 0x402e04
inc dword [esp + 0x20]
test eax, eax
je 0x402e22
mov al, 1
mov dword [esp + 0x38], eax
jmp 0x402e22
test eax, eax
jne 0x402e0c
test ecx, ecx
je 0x402e22
mov edx, dword [esp + 0x14]
mov al, byte [eax + str.0123456789ABCDEFabcdef_XxPp]
mov byte [edx], al
inc edx
inc ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x40]
cmp esi, 0xf
cmova eax, edx
cmp byte [eax + ebx], 0x7f
je 0x402ec2
cmp esi, 0xf
lea eax, [esp + 0x40]
cmova eax, edx
inc byte [eax + ebx]
jmp 0x402eb6
cmp byte [edi + 4], 0
jne 0x402e84
mov ecx, dword [edi]
test ecx, ecx
je 0x402e7a
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402e6b
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402e6b
movzx eax, byte [edx]
jmp 0x402e70
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402e7a
mov byte [edi + 5], al
jmp 0x402e80
mov dword [edi], 0
mov byte [edi + 4], 1
mov al, byte [esp + 0x13]
cmp byte [edi + 5], al
jne 0x402d4c
cmp esi, 0xf
lea eax, [esp + 0x40]
cmova eax, dword [esp + 0x28]
cmp byte [eax + ebx], 0
jne 0x402eaa
mov byte [esp + 0x12], 1
jmp 0x402ec2
push 0
lea ecx, [esp + 0x44]
call fcn.00408b10
inc ebx
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x54]
mov dword [esp + 0x28], eax
mov ecx, dword [edi]
test ecx, ecx
je 0x402efe
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x402eeb
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x402eeb
dec eax
mov dword [edx], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
movzx eax, byte [edx]
jmp 0x402ef0
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x402efe
mov byte [edi + 4], 0
jmp 0x402c22
mov dword [edi], 0
mov byte [edi + 4], 1
jmp 0x402c22
mov byte [esp + 0x12], 1
mov bl, byte [esp + 0x13]
cmp byte [edi + 4], 0
jne 0x402f51
mov ecx, dword [edi]
test ecx, ecx
je 0x402f47
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402f38
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402f38
movzx eax, byte [edx]
jmp 0x402f3d
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402f47
mov byte [edi + 5], al
jmp 0x402f4d
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [ebp + 4], 0
jne 0x402f8e
mov ecx, dword [ebp]
test ecx, ecx
je 0x402f83
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402f74
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402f74
movzx eax, byte [edx]
jmp 0x402f79
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402f83
mov byte [ebp + 5], al
jmp 0x402f8a
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov ecx, dword [edi]
mov eax, dword [ebp]
test ecx, ecx
jne 0x40302e
test eax, eax
jne 0x403036
cmp dword [esp + 0x6c], 0xf
lea ecx, [esp + 0x58]
mov esi, dword [esp + 0x68]
cmova ecx, dword [esp + 0x58]
xor dl, dl
mov dh, byte [esp + 0x12]
add esi, ecx
mov ebx, dword [esp + 0x1c]
test dh, dh
jne 0x4030d3
nop dword [eax]
test ebx, ebx
je 0x4030d3
cmp ecx, esi
je 0x402fde
mov dl, byte [ecx]
lea eax, [ecx + 1]
cmove eax, ecx
dec ebx
mov ecx, eax
test dl, dl
jle 0x403025
cmp dl, 0x7f
je 0x403025
test ebx, ebx
je 0x40300f
cmp dword [esp + 0x3c], 0xf
lea eax, [esp + 0x40]
cmova eax, dword [esp + 0x28]
cmp byte [eax + ebx], dl
jne 0x4030ce
test ebx, ebx
jne 0x403025
cmp dword [esp + 0x3c], 0xf
lea eax, [esp + 0x40]
cmova eax, dword [esp + 0x28]
cmp byte [eax], dl
jg 0x4030ce
test dh, dh
je 0x402fd0
jmp 0x4030d3
test eax, eax
jne 0x402fa3
cmp byte [edi + 4], 0
jne 0x40306f
test ecx, ecx
je 0x403065
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x403056
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x403056
movzx eax, byte [edx]
jmp 0x40305b
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x403065
mov byte [edi + 5], al
jmp 0x40306b
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [edi + 5], bl
jne 0x402fa3
mov ecx, dword [edi]
test ecx, ecx
je 0x4030ba
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x4030a1
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x4030a1
dec eax
mov dword [edx], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
movzx eax, byte [edx]
jmp 0x4030a6
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x4030ba
xor al, al
mov byte [esp + 0x12], 1
mov byte [edi + 4], al
jmp 0x402f16
mov al, 1
mov dword [edi], 0
mov byte [edi + 4], al
mov byte [esp + 0x12], al
jmp 0x402f16
mov byte [esp + 0x12], 1
lea ecx, [esp + 0x40]
call fcn.00405860
mov esi, dword [esp + 0x34]
mov bl, byte [esp + 0x11]
test bl, bl
je 0x4030ff
cmp byte [esp + 0x10], 0
je 0x4030ff
test esi, esi
jne 0x4030ff
mov eax, dword [esp + 0x14]
mov byte [eax], 0x30
inc eax
mov dword [esp + 0x14], eax
call fcn.004157d6
cmp byte [edi + 4], 0
mov eax, dword [eax]
mov bh, byte [eax]
jne 0x403143
mov ecx, dword [edi]
test ecx, ecx
je 0x403139
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x40312a
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x40312a
movzx eax, byte [edx]
jmp 0x40312f
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x403139
mov byte [edi + 5], al
jmp 0x40313f
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [ebp + 4], 0
jne 0x403180
mov ecx, dword [ebp]
test ecx, ecx
je 0x403175
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x403166
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x403166
movzx eax, byte [edx]
jmp 0x40316b
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x403175
mov byte [ebp + 5], al
jmp 0x40317c
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp dword [edi], 0
mov eax, dword [ebp]
jne 0x403192
test eax, eax
je 0x40323b
jmp 0x40319a
test eax, eax
jne 0x40323b
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
cmp byte [edi + 4], 0
mov bl, al
jne 0x4031e4
mov edx, dword [edi]
test edx, edx
je 0x4031da
mov ecx, dword [edx + 0x1c]
mov ecx, dword [ecx]
test ecx, ecx
je 0x4031c9
mov eax, dword [edx + 0x2c]
cmp dword [eax], 0
jle 0x4031c9
movzx eax, byte [ecx]
jmp 0x4031d0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x4031da
mov byte [edi + 5], al
jmp 0x4031e0
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [edi + 5], bl
jne 0x403237
mov eax, dword [esp + 0x14]
mov byte [eax], bh
inc eax
mov ecx, dword [edi]
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x40322d
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x40321d
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x40321d
dec eax
mov dword [edx], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
movzx eax, byte [edx]
jmp 0x403222
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x40322d
mov byte [edi + 4], 0
jmp 0x403237
mov dword [edi], 0
mov byte [edi + 4], 1
mov bl, byte [esp + 0x11]
test esi, esi
jne 0x4032e1
mov esi, dword [esp + 0x20]
mov bl, byte [esp + 0x18]
nop dword [eax + eax]
cmp byte [edi + 4], 0
jne 0x40328b
mov ecx, dword [edi]
test ecx, ecx
je 0x403281
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x403272
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x403272
movzx eax, byte [edx]
jmp 0x403277
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x403281
mov byte [edi + 5], al
jmp 0x403287
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [ebp + 4], 0
jne 0x4032c8
mov ecx, dword [ebp]
test ecx, ecx
je 0x4032bd
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x4032ae
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4032ae
movzx eax, byte [edx]
jmp 0x4032b3
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x4032bd
mov byte [ebp + 5], al
jmp 0x4032c4
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov ecx, dword [edi]
mov eax, dword [ebp]
test ecx, ecx
jne 0x403316
test eax, eax
jne 0x40331a
mov bl, byte [esp + 0x11]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x34]
cmp byte [edi + 4], 0
jne 0x4033c6
mov ecx, dword [edi]
test ecx, ecx
je 0x4033bc
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x4033ad
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4033ad
movzx eax, byte [edx]
jmp 0x4033b2
test eax, eax
jne 0x4032d5
cmp byte [edi + 4], 0
jne 0x403353
test ecx, ecx
je 0x403349
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x40333a
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x40333a
movzx eax, byte [edx]
jmp 0x40333f
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x403349
mov byte [edi + 5], al
jmp 0x40334f
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [edi + 5], bl
jne 0x4032d5
mov ecx, dword [edi]
dec esi
mov byte [esp + 0x10], 1
test ecx, ecx
je 0x40339e
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x40338b
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x40338b
dec eax
mov dword [edx], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
movzx eax, byte [edx]
jmp 0x403390
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x40339e
mov byte [edi + 4], 0
jmp 0x403250
mov dword [edi], 0
mov byte [edi + 4], 1
jmp 0x403250
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x4033bc
mov byte [edi + 5], al
jmp 0x4033c2
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [ebp + 4], 0
jne 0x403403
mov ecx, dword [ebp]
test ecx, ecx
je 0x4033f8
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x4033e9
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4033e9
movzx eax, byte [edx]
jmp 0x4033ee
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x4033f8
mov byte [ebp + 5], al
jmp 0x4033ff
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov ecx, dword [edi]
mov eax, dword [ebp]
test ecx, ecx
jne 0x4034c3
test eax, eax
jne 0x4034cb
cmp byte [esp + 0x38], 0
je 0x40344f
mov eax, dword [esp + 0x14]
mov cl, byte [eax - 1]
lea edx, [eax - 1]
cmp cl, bh
jne 0x403433
mov cl, byte [eax - 2]
lea edx, [eax - 2]
cmp cl, 0x30
je 0x40344b
test bl, bl
mov eax, 0x35
mov esi, 0x38
cmovne eax, esi
cmp cl, al
jne 0x40344f
inc cl
mov byte [edx], cl
test bl, bl
mov byte [esp + 0x1b], 0
mov ecx, 0x1b
mov eax, 0x14
cmovne eax, ecx
mov ecx, 0x1a
mov al, byte [esp + eax + 0x70]
mov byte [esp + 0x13], al
mov eax, 0xe
cmovne eax, ecx
xor ebx, ebx
mov dword [esp + 0x2c], ebx
mov al, byte [esp + eax + 0x70]
mov byte [esp + 0x27], al
cmp byte [esp + 0x10], bl
je 0x403cc0
cmp byte [edi + 4], bl
jne 0x4035c8
mov ecx, dword [edi]
test ecx, ecx
je 0x4035c2
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x4035b3
mov eax, dword [ecx + 0x2c]
cmp dword [eax], ebx
jle 0x4035b3
movzx eax, byte [edx]
jmp 0x4035b8
test eax, eax
jne 0x403418
cmp byte [edi + 4], 0
jne 0x403504
test ecx, ecx
je 0x4034fa
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x4034eb
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4034eb
movzx eax, byte [edx]
jmp 0x4034f0
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x4034fa
mov byte [edi + 5], al
jmp 0x403500
mov dword [edi], 0
mov byte [edi + 4], 1
mov al, byte [edi + 5]
mov byte [esp + 0x2c], al
lea eax, [esp + 0x8c]
push dword [esp + 0x2c]
push eax
lea eax, [esp + 0x78]
push eax
call fcn.00409030
lea ecx, [esp + 0x70]
sub eax, ecx
cmp eax, dword [esp + 0x30]
jae 0x403418
cmp esi, dword [esp + 0x9c]
jge 0x40354e
mov ecx, dword [esp + 0x14]
mov al, byte [eax + str.0123456789ABCDEFabcdef_XxPp]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x14], ecx
inc esi
jmp 0x403563
mov ecx, dword [esp + 0x38]
test eax, eax
movzx ecx, cl
mov eax, 1
cmovne ecx, eax
mov dword [esp + 0x38], ecx
mov ecx, dword [edi]
mov byte [esp + 0x10], 1
test ecx, ecx
je 0x4035a4
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x403591
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x403591
dec eax
mov dword [edx], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
movzx eax, byte [edx]
jmp 0x403596
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x4035a4
mov byte [edi + 4], 0
jmp 0x4032e1
mov dword [edi], 0
mov byte [edi + 4], 1
jmp 0x4032e1
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x4035c2
mov byte [edi + 5], al
jmp 0x4035c4
mov dword [edi], ebx
mov byte [edi + 4], 1
cmp byte [ebp + 4], bl
jne 0x4035ff
mov ecx, dword [ebp]
test ecx, ecx
je 0x4035f8
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x4035e9
mov eax, dword [ecx + 0x2c]
cmp dword [eax], ebx
jle 0x4035e9
movzx eax, byte [edx]
jmp 0x4035ee
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x4035f8
mov byte [ebp + 5], al
jmp 0x4035fb
mov dword [ebp], ebx
mov byte [ebp + 4], 1
mov ecx, dword [edi]
mov eax, dword [ebp]
test ecx, ecx
jne 0x403612
test eax, eax
je 0x403a5a
jmp 0x40361a
test eax, eax
jne 0x403a5a
mov dl, byte [edi + 4]
test dl, dl
jne 0x403651
test ecx, ecx
je 0x403649
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x40363a
mov eax, dword [ecx + 0x2c]
cmp dword [eax], ebx
jle 0x40363a
movzx eax, byte [edx]
jmp 0x40363f
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x403649
mov byte [edi + 5], al
jmp 0x40364b
mov dword [edi], ebx
mov byte [edi + 4], 1
mov dl, 1
mov al, byte [edi + 5]
cmp al, byte [esp + 0x13]
je 0x40369b
test dl, dl
jne 0x403691
mov ecx, dword [edi]
test ecx, ecx
je 0x403688
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x403679
mov eax, dword [ecx + 0x2c]
cmp dword [eax], ebx
jle 0x403679
movzx eax, byte [edx]
jmp 0x40367e
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x403688
mov byte [edi + 5], al
jmp 0x40368d
mov al, byte [edi + 5]
mov dword [edi], ebx
mov byte [edi + 4], 1
cmp al, byte [esp + 0x27]
jne 0x403a5a
mov ecx, dword [edi]
test ecx, ecx
je 0x4036fe
mov eax, dword [ecx + 0x1c]
cmp dword [eax], ebx
je 0x4036c3
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x4036c3
dec eax
mov dword [edx], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
movzx eax, byte [edx]
jmp 0x4036c8
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x4036fe
mov byte [edi + 4], bl
mov ecx, dword [edi]
mov byte [esp + 0x10], bl
test ecx, ecx
je 0x403702
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x4036ef
mov eax, dword [ecx + 0x2c]
cmp dword [eax], ebx
jle 0x4036ef
movzx eax, byte [edx]
jmp 0x4036f4
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x403702
mov byte [edi + 5], al
jmp 0x403704
mov byte [esp + 0x10], bl
mov dword [edi], ebx
mov cl, byte [esp + 0x10]
mov al, 1
mov byte [edi + 4], al
mov byte [esp + 0x13], cl
cmp byte [ebp + 4], bl
jne 0x403748
mov ecx, dword [ebp]
test ecx, ecx
je 0x403741
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x403732
mov eax, dword [ecx + 0x2c]
cmp dword [eax], ebx
jle 0x403732
movzx eax, byte [edx]
jmp 0x403737
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x403741
mov byte [ebp + 5], al
jmp 0x403744
mov dword [ebp], ebx
mov byte [ebp + 4], 1
mov ecx, dword [edi]
mov eax, dword [ebp]
test ecx, ecx
jne 0x40375b
test eax, eax
je 0x40387a
jmp 0x403763
test eax, eax
jne 0x40387a
mov dl, byte [edi + 4]
test dl, dl
jne 0x40379a
test ecx, ecx
je 0x403792
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x403783
mov eax, dword [ecx + 0x2c]
cmp dword [eax], ebx
jle 0x403783
movzx eax, byte [edx]
jmp 0x403788
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x403792
mov byte [edi + 5], al
jmp 0x403794
mov dword [edi], ebx
mov byte [edi + 4], 1
mov dl, 1
mov al, byte [edi + 5]
cmp al, byte [esp + 0x19]
jne 0x4037eb
mov ecx, dword [edi]
test ecx, ecx
je 0x4037df
mov eax, dword [ecx + 0x1c]
cmp dword [eax], ebx
je 0x4037cb
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x4037cb
dec eax
mov dword [edx], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
movzx eax, byte [edx]
jmp 0x4037d0
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x4037df
xor al, al
mov byte [edi + 4], al
jmp 0x403872
mov al, 1
mov dword [edi], ebx
mov byte [edi + 4], al
jmp 0x403872
test dl, dl
jne 0x403822
mov ecx, dword [edi]
test ecx, ecx
je 0x403819
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x40380a
mov eax, dword [ecx + 0x2c]
cmp dword [eax], ebx
jle 0x40380a
movzx eax, byte [edx]
jmp 0x40380f
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x403819
mov byte [edi + 5], al
jmp 0x40381e
mov al, byte [edi + 5]
mov dword [edi], ebx
mov byte [edi + 4], 1
mov cl, byte [esp + 0x13]
mov byte [esp + 0x10], cl
cmp al, byte [esp + 0x1a]
jne 0x40387a
mov ecx, dword [edi]
mov byte [esp + 0x1b], 1
test ecx, ecx
je 0x40386c
mov eax, dword [ecx + 0x1c]
cmp dword [eax], ebx
je 0x40385d
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x40385d
dec eax
mov dword [edx], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
movzx eax, byte [edx]
jmp 0x403862
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x40386c
mov byte [edi + 4], bl
jmp 0x403872
mov dword [edi], ebx
mov byte [edi + 4], 1
mov al, byte [esp + 0x13]
mov byte [esp + 0x10], al
mov bl, byte [esp + 0x18]
nop
cmp byte [edi + 4], 0
jne 0x4038bb
mov ecx, dword [edi]
test ecx, ecx
je 0x4038b1
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x4038a2
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4038a2
movzx eax, byte [edx]
jmp 0x4038a7
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x4038b1
mov byte [edi + 5], al
jmp 0x4038b7
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [ebp + 4], 0
jne 0x4038f8
mov ecx, dword [ebp]
test ecx, ecx
je 0x4038ed
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x4038de
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4038de
movzx eax, byte [edx]
jmp 0x4038e3
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x4038ed
mov byte [ebp + 5], al
jmp 0x4038f4
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov ecx, dword [edi]
mov eax, dword [ebp]
test ecx, ecx
jne 0x403945
test eax, eax
jne 0x403949
mov ebx, dword [esp + 0x2c]
nop dword [eax]
cmp byte [edi + 4], 0
jne 0x4039f4
mov ecx, dword [edi]
test ecx, ecx
je 0x4039ea
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x4039db
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4039db
movzx eax, byte [edx]
jmp 0x4039e0
test eax, eax
jne 0x403905
cmp byte [edi + 4], 0
jne 0x403982
test ecx, ecx
je 0x403978
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x403969
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x403969
movzx eax, byte [edx]
jmp 0x40396e
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x403978
mov byte [edi + 5], al
jmp 0x40397e
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [edi + 5], bl
jne 0x403905
mov ecx, dword [edi]
mov byte [esp + 0x10], 1
test ecx, ecx
je 0x4039cc
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x4039b9
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x4039b9
dec eax
mov dword [edx], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
movzx eax, byte [edx]
jmp 0x4039be
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x4039cc
mov byte [edi + 4], 0
jmp 0x403880
mov dword [edi], 0
mov byte [edi + 4], 1
jmp 0x403880
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x4039ea
mov byte [edi + 5], al
jmp 0x4039f0
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [ebp + 4], 0
jne 0x403a31
mov ecx, dword [ebp]
test ecx, ecx
je 0x403a26
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x403a17
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x403a17
movzx eax, byte [edx]
jmp 0x403a1c
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x403a26
mov byte [ebp + 5], al
jmp 0x403a2d
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov ecx, dword [edi]
mov eax, dword [ebp]
test ecx, ecx
jne 0x403b18
test eax, eax
jne 0x403b20
cmp byte [esp + 0x1b], 0
je 0x403a4f
neg ebx
cmp byte [esp + 0x10], 0
je 0x403cc0
mov cl, byte [esp + 0x11]
mov ebp, 0x44c
mov esi, dword [esp + 0x20]
test cl, cl
mov edi, ebp
mov eax, 0x1068
cmovne edi, eax
mov eax, 0x41a
cmovne ebp, eax
nop dword [eax + eax]
test ebx, ebx
js 0x403a9a
test esi, esi
js 0x403a98
cmp ebx, edi
jge 0x403c07
cmp esi, ebp
jge 0x403c07
test ebx, ebx
jg 0x403ab8
test esi, esi
jg 0x403ab8
mov ecx, edi
neg ecx
cmp ebx, ecx
jle 0x403c05
mov eax, ebp
neg eax
cmp esi, eax
jle 0x403c05
mov eax, ebx
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
cmp ecx, edi
jg 0x403ad4
mov eax, esi
cdq
xor eax, edx
sub eax, edx
cmp eax, ebp
jle 0x403c0d
cmp byte [esp + 0x11], 0
je 0x403ae9
lea eax, [ecx - 1]
cdq
and edx, 3
lea ecx, [edx + eax]
sar ecx, 2
inc ecx
mov eax, dword [esp + 0x20]
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
cmovl ecx, eax
lea eax, [ecx*4]
test ebx, ebx
js 0x403bf3
cmp byte [esp + 0x11], 0
jne 0x403b0f
mov eax, ecx
sub ebx, eax
add esi, ecx
jmp 0x403a80
test eax, eax
jne 0x403a46
cmp byte [edi + 4], 0
jne 0x403b59
test ecx, ecx
je 0x403b4f
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x403b40
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x403b40
movzx eax, byte [edx]
jmp 0x403b45
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x403b4f
mov byte [edi + 5], al
jmp 0x403b55
mov dword [edi], 0
mov byte [edi + 4], 1
mov al, byte [edi + 5]
mov byte [esp + 0x2c], al
lea eax, [esp + 0x8c]
push dword [esp + 0x2c]
push eax
lea eax, [esp + 0x78]
push eax
call fcn.00409030
mov ecx, eax
lea eax, [esp + 0x70]
sub ecx, eax
cmp ecx, 0xa
jae 0x403a46
cmp ebx, 0xccccccc
jl 0x403b9d
jne 0x403b96
cmp ecx, 7
jle 0x403b9d
mov ebx, 0x7fffffff
jmp 0x403ba3
lea eax, [ebx + ebx*4]
lea ebx, [ecx + eax*2]
mov ecx, dword [edi]
mov byte [esp + 0x10], 1
test ecx, ecx
je 0x403be4
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x403bd1
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x403bd1
dec eax
mov dword [edx], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
movzx eax, byte [edx]
jmp 0x403bd6
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x403be4
mov byte [edi + 4], 0
jmp 0x403910
mov dword [edi], 0
mov byte [edi + 4], 1
jmp 0x403910
cmp byte [esp + 0x11], 0
jne 0x403bfc
mov eax, ecx
add ebx, eax
sub esi, ecx
jmp 0x403a80
mov edi, ecx
mov cl, byte [esp + 0x11]
jmp 0x403c29
mov cl, byte [esp + 0x11]
test cl, cl
je 0x403c18
shl esi, 2
add ebx, esi
cmp ebx, edi
jg 0x403c29
mov eax, edi
mov edi, ebx
neg eax
cmp ebx, eax
cmovl edi, eax
mov ebp, dword [esp + 0x14]
test edi, edi
je 0x403c9c
test cl, cl
mov eax, 0x65
mov edx, 0x70
cmovne eax, edx
mov byte [ebp], al
inc ebp
test edi, edi
jns 0x403c4d
mov byte [ebp], 0x2d
inc ebp
mov eax, edi
mov esi, ebp
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
mov dword [esp + 0x30], ecx
je 0x403c92
nop
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
mov al, bl
mov cl, bl
shl al, 2
add cl, al
mov eax, dword [esp + 0x30]
add cl, cl
sub al, cl
mov ecx, ebx
add al, 0x30
mov dword [esp + 0x30], ecx
mov byte [ebp], al
inc ebp
test ecx, ecx
jne 0x403c60
push ebp
push esi
call fcn.00409100
add esp, 8
cmp byte [esp + 0x11], 0
mov eax, 0x10
mov ebx, 0xa
mov byte [ebp], 0
cmovne ebx, eax
movzx eax, byte [esp + 0x12]
shl ax, 8
or bx, ax
jmp 0x403cc5
xor eax, eax
mov bx, ax
mov ecx, dword [esp + 0x6c]
cmp ecx, 0xf
jbe 0x403cf7
mov edx, dword [esp + 0x58]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x403ced
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403d13
push ecx
push edx
call fcn.0040b6ad
add esp, 8
mov ecx, dword [esp + 0x90]
mov ax, bx
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0040b6c0
add esp, 0x84
ret
call fcn.0041031f
int3