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

Disassembly:
sub esp, 0x84
mov eax, dword [0x43a040]
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.00404640
add esp, 4
lea ecx, [esp + 0x70]
mov edx, dword [eax]
push ecx
push 0x42c4a9
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.00404b20
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 0x401f66
xor bl, bl
mov byte [esp + 0x13], bl
mov byte [esp + 0x12], bl
cmp byte [edi + 4], 0
jne 0x4020c9
mov ecx, dword [edi]
test ecx, ecx
je 0x4020bf
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x4020b0
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4020b0
movzx eax, byte [edx]
jmp 0x4020b5
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 0x401f31
mov ecx, dword [edi]
cmp byte [edi + 4], 0
jne 0x401fbc
test ecx, ecx
je 0x401fb2
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x401fa3
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x401fa3
movzx eax, byte [edx]
jmp 0x401fa8
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x401fb2
mov byte [edi + 5], al
jmp 0x401fb8
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [ebp + 4], 0
jne 0x401ff9
mov ecx, dword [ebp]
test ecx, ecx
je 0x401fee
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x401fdf
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x401fdf
movzx eax, byte [edx]
jmp 0x401fe4
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x401fee
mov byte [ebp + 5], al
jmp 0x401ff5
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov ecx, dword [edi]
mov eax, dword [ebp]
test ecx, ecx
jne 0x40200c
test eax, eax
je 0x401f31
jmp 0x402014
test eax, eax
jne 0x401f31
cmp byte [edi + 4], 0
jne 0x40204d
test ecx, ecx
je 0x402043
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402034
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402034
movzx eax, byte [edx]
jmp 0x402039
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402043
mov byte [edi + 5], al
jmp 0x402049
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [edi + 5], bl
jne 0x401f31
mov ecx, dword [edi]
test ecx, ecx
je 0x40209a
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x40207f
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x40207f
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 0x402084
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x40209a
mov ecx, dword [edi]
xor al, al
mov byte [edi + 4], al
mov byte [esp + 0x12], 1
jmp 0x401f83
mov al, 1
mov dword [edi], 0
xor ecx, ecx
mov byte [edi + 4], al
mov byte [esp + 0x12], al
jmp 0x401f83
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x4020bf
mov byte [edi + 5], al
jmp 0x4020c5
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [ebp + 4], 0
jne 0x402106
mov ecx, dword [ebp]
test ecx, ecx
je 0x4020fb
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x4020ec
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4020ec
movzx eax, byte [edx]
jmp 0x4020f1
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x4020fb
mov byte [ebp + 5], al
jmp 0x402102
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov ecx, dword [edi]
mov eax, dword [ebp]
test ecx, ecx
jne 0x402162
test eax, eax
jne 0x402166
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 0x402273
mov ecx, dword [edi]
test ecx, ecx
je 0x402269
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x40225a
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x40225a
movzx eax, byte [edx]
jmp 0x40225f
test eax, eax
jne 0x402113
mov dl, byte [edi + 4]
test dl, dl
jne 0x4021a2
test ecx, ecx
je 0x402196
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402187
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402187
movzx eax, byte [edx]
jmp 0x40218c
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402196
mov byte [edi + 5], al
jmp 0x40219c
mov dword [edi], 0
mov byte [edi + 4], 1
mov dl, 1
mov al, byte [edi + 5]
cmp al, byte [esp + 0x19]
jne 0x402200
mov esi, dword [esp + 0x14]
mov byte [esi], 0x2b
inc esi
mov ecx, dword [edi]
test ecx, ecx
je 0x4021f0
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x4021dc
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x4021dc
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 0x4021e1
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x4021f0
xor al, al
mov byte [edi + 4], al
jmp 0x402117
mov al, 1
mov dword [edi], 0
mov byte [edi + 4], al
jmp 0x402117
test dl, dl
jne 0x40223c
mov ecx, dword [edi]
test ecx, ecx
je 0x40222f
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402220
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402220
movzx eax, byte [edx]
jmp 0x402225
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x40222f
mov byte [edi + 5], al
jmp 0x402238
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 0x402117
mov byte [esi], 0x2d
mov ecx, edi
inc esi
call fcn.00405650
jmp 0x402117
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402269
mov byte [edi + 5], al
jmp 0x40226f
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [ebp + 4], 0
jne 0x4022b0
mov ecx, dword [ebp]
test ecx, ecx
je 0x4022a5
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402296
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402296
movzx eax, byte [edx]
jmp 0x40229b
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x4022a5
mov byte [ebp + 5], al
jmp 0x4022ac
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov ecx, dword [edi]
mov eax, dword [ebp]
test ecx, ecx
jne 0x4022c3
test eax, eax
je 0x402456
jmp 0x4022cb
test eax, eax
jne 0x402456
cmp byte [edi + 4], 0
jne 0x402304
test ecx, ecx
je 0x4022fa
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x4022eb
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4022eb
movzx eax, byte [edx]
jmp 0x4022f0
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x4022fa
mov byte [edi + 5], al
jmp 0x402300
mov dword [edi], 0
mov byte [edi + 4], 1
mov al, byte [esp + 0x18]
cmp byte [edi + 5], al
jne 0x402456
mov ecx, dword [edi]
test ecx, ecx
je 0x402373
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x40233a
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x40233a
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 0x40233f
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x402373
mov byte [edi + 4], 0
mov ecx, dword [edi]
test ecx, ecx
je 0x402373
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402364
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402364
movzx eax, byte [edx]
jmp 0x402369
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402373
mov byte [edi + 5], al
jmp 0x402379
mov dword [edi], 0
mov al, 1
mov byte [edi + 4], al
cmp byte [ebp + 4], 0
jne 0x4023bb
mov ecx, dword [ebp]
test ecx, ecx
je 0x4023b0
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x4023a1
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4023a1
movzx eax, byte [edx]
jmp 0x4023a6
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x4023b0
mov byte [ebp + 5], al
jmp 0x4023b7
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov ecx, dword [edi]
mov eax, dword [ebp]
test ecx, ecx
jne 0x4023e8
test eax, eax
je 0x4023ec
cmp byte [edi + 4], 0
jne 0x40241a
test ecx, ecx
je 0x402410
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402401
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402401
movzx eax, byte [edx]
jmp 0x402406
test eax, eax
je 0x4023c8
movzx eax, byte [esp + 0x12]
shl ax, 8
mov byte [esi], 0
or ax, 0xa
jmp 0x403742
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402410
mov byte [edi + 5], al
jmp 0x402416
mov dword [edi], 0
mov byte [edi + 4], 1
mov al, byte [edi + 5]
cmp al, byte [esp + 0x89]
je 0x402442
mov ecx, edi
call fcn.00405600
cmp al, byte [esp + 0x88]
je 0x402442
mov dl, 1
mov byte [esp + 0x10], dl
mov byte [esp + 0x1c], dl
jmp 0x402456
mov ecx, edi
mov byte [esp + 0x11], 1
call fcn.00405650
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 0x402606
mov ebx, eax
cmp byte [edi + 4], 0
jne 0x4024c3
mov ecx, dword [edi]
test ecx, ecx
je 0x4024b9
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x4024aa
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4024aa
movzx eax, byte [edx]
jmp 0x4024af
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x4024b9
mov byte [edi + 5], al
jmp 0x4024bf
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [ebp + 4], 0
jne 0x402500
mov ecx, dword [ebp]
test ecx, ecx
je 0x4024f5
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x4024e6
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4024e6
movzx eax, byte [edx]
jmp 0x4024eb
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x4024f5
mov byte [ebp + 5], al
jmp 0x4024fc
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov ecx, dword [edi]
mov eax, dword [ebp]
test ecx, ecx
jne 0x402513
test eax, eax
je 0x402b60
jmp 0x40251b
test eax, eax
jne 0x402b60
cmp byte [edi + 4], 0
jne 0x402554
test ecx, ecx
je 0x40254a
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x40253b
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x40253b
movzx eax, byte [edx]
jmp 0x402540
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x40254a
mov byte [edi + 5], al
jmp 0x402550
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.00408df0
lea ecx, [esp + 0x70]
sub eax, ecx
cmp eax, ebx
jae 0x402b60
cmp esi, dword [esp + 0x9c]
jl 0x402598
inc dword [esp + 0x20]
test eax, eax
je 0x4025b6
mov al, 1
mov dword [esp + 0x38], eax
jmp 0x4025b6
test eax, eax
jne 0x4025a0
test esi, esi
je 0x4025b6
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 0x4025f7
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x4025e4
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x4025e4
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 0x4025e9
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x4025f7
mov byte [edi + 4], 0
jmp 0x402488
mov dword [edi], 0
mov byte [edi + 4], 1
jmp 0x402488
cmp byte [edi + 4], 0
jne 0x40263c
mov ecx, dword [edi]
test ecx, ecx
je 0x402636
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402627
mov eax, dword [ecx + 0x2c]
cmp dword [eax], esi
jle 0x402627
movzx eax, byte [edx]
jmp 0x40262c
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402636
mov byte [edi + 5], al
jmp 0x402638
mov dword [edi], esi
mov byte [edi + 4], 1
cmp byte [ebp + 4], 0
jne 0x402674
mov ecx, dword [ebp]
test ecx, ecx
je 0x40266d
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x40265e
mov eax, dword [ecx + 0x2c]
cmp dword [eax], esi
jle 0x40265e
movzx eax, byte [edx]
jmp 0x402663
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x40266d
mov byte [ebp + 5], al
jmp 0x402670
mov dword [ebp], esi
mov byte [ebp + 4], 1
mov ecx, dword [edi]
mov eax, dword [ebp]
test ecx, ecx
jne 0x4026d7
test eax, eax
jne 0x4026db
push dword [esp + 0x1c]
lea ecx, [esp + 0x44]
push 1
call fcn.00404c20
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 0x402782
mov ecx, dword [edi]
test ecx, ecx
je 0x402778
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402769
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402769
movzx eax, byte [edx]
jmp 0x40276e
test eax, eax
jne 0x402681
cmp byte [edi + 4], 0
jne 0x40270f
test ecx, ecx
je 0x402709
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x4026fa
mov eax, dword [ecx + 0x2c]
cmp dword [eax], esi
jle 0x4026fa
movzx eax, byte [edx]
jmp 0x4026ff
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402709
mov byte [edi + 5], al
jmp 0x40270b
mov dword [edi], esi
mov byte [edi + 4], 1
cmp byte [edi + 5], bl
jne 0x402681
mov ecx, dword [edi]
test ecx, ecx
je 0x402759
mov eax, dword [ecx + 0x1c]
cmp dword [eax], esi
je 0x402740
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x402740
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 0x402745
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x402759
xor al, al
mov byte [esp + 0x12], 1
mov byte [edi + 4], al
jmp 0x402606
mov al, 1
mov dword [edi], esi
mov byte [edi + 4], al
mov byte [esp + 0x12], al
jmp 0x402606
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402778
mov byte [edi + 5], al
jmp 0x40277e
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [ebp + 4], 0
jne 0x4027bf
mov ecx, dword [ebp]
test ecx, ecx
je 0x4027b4
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x4027a5
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4027a5
movzx eax, byte [edx]
jmp 0x4027aa
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x4027b4
mov byte [ebp + 5], al
jmp 0x4027bb
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov ecx, dword [edi]
mov eax, dword [ebp]
test ecx, ecx
jne 0x4027fc
test eax, eax
jne 0x402800
mov dword [esp + 0x3c], esi
mov dword [esp + 0x1c], ebx
test ebx, ebx
je 0x402992
cmp esi, 0xf
lea eax, [esp + 0x40]
cmova eax, dword [esp + 0x28]
cmp byte [eax + ebx], 0
jle 0x40298d
inc ebx
mov dword [esp + 0x1c], ebx
jmp 0x402992
test eax, eax
jne 0x4027cc
cmp byte [edi + 4], 0
jne 0x402839
test ecx, ecx
je 0x40282f
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402820
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402820
movzx eax, byte [edx]
jmp 0x402825
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x40282f
mov byte [edi + 5], al
jmp 0x402835
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.00408df0
lea ecx, [esp + 0x70]
sub eax, ecx
cmp eax, dword [esp + 0x30]
jae 0x4028c9
mov ecx, dword [esp + 0x34]
mov byte [esp + 0x10], 1
cmp ecx, dword [esp + 0x9c]
jl 0x402884
inc dword [esp + 0x20]
test eax, eax
je 0x4028a2
mov al, 1
mov dword [esp + 0x38], eax
jmp 0x4028a2
test eax, eax
jne 0x40288c
test ecx, ecx
je 0x4028a2
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 0x402942
cmp esi, 0xf
lea eax, [esp + 0x40]
cmova eax, edx
inc byte [eax + ebx]
jmp 0x402936
cmp byte [edi + 4], 0
jne 0x402904
mov ecx, dword [edi]
test ecx, ecx
je 0x4028fa
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x4028eb
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4028eb
movzx eax, byte [edx]
jmp 0x4028f0
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x4028fa
mov byte [edi + 5], al
jmp 0x402900
mov dword [edi], 0
mov byte [edi + 4], 1
mov al, byte [esp + 0x13]
cmp byte [edi + 5], al
jne 0x4027cc
cmp esi, 0xf
lea eax, [esp + 0x40]
cmova eax, dword [esp + 0x28]
cmp byte [eax + ebx], 0
jne 0x40292a
mov byte [esp + 0x12], 1
jmp 0x402942
push 0
lea ecx, [esp + 0x44]
call fcn.00408590
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 0x40297e
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x40296b
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x40296b
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 0x402970
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x40297e
mov byte [edi + 4], 0
jmp 0x4026a2
mov dword [edi], 0
mov byte [edi + 4], 1
jmp 0x4026a2
mov byte [esp + 0x12], 1
mov bl, byte [esp + 0x13]
cmp byte [edi + 4], 0
jne 0x4029d1
mov ecx, dword [edi]
test ecx, ecx
je 0x4029c7
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x4029b8
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4029b8
movzx eax, byte [edx]
jmp 0x4029bd
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x4029c7
mov byte [edi + 5], al
jmp 0x4029cd
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [ebp + 4], 0
jne 0x402a0e
mov ecx, dword [ebp]
test ecx, ecx
je 0x402a03
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x4029f4
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4029f4
movzx eax, byte [edx]
jmp 0x4029f9
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402a03
mov byte [ebp + 5], al
jmp 0x402a0a
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov ecx, dword [edi]
mov eax, dword [ebp]
test ecx, ecx
jne 0x402aae
test eax, eax
jne 0x402ab6
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 0x402b53
nop dword [eax]
test ebx, ebx
je 0x402b53
cmp ecx, esi
je 0x402a5e
mov dl, byte [ecx]
lea eax, [ecx + 1]
cmove eax, ecx
dec ebx
mov ecx, eax
test dl, dl
jle 0x402aa5
cmp dl, 0x7f
je 0x402aa5
test ebx, ebx
je 0x402a8f
cmp dword [esp + 0x3c], 0xf
lea eax, [esp + 0x40]
cmova eax, dword [esp + 0x28]
cmp byte [eax + ebx], dl
jne 0x402b4e
test ebx, ebx
jne 0x402aa5
cmp dword [esp + 0x3c], 0xf
lea eax, [esp + 0x40]
cmova eax, dword [esp + 0x28]
cmp byte [eax], dl
jg 0x402b4e
test dh, dh
je 0x402a50
jmp 0x402b53
test eax, eax
jne 0x402a23
cmp byte [edi + 4], 0
jne 0x402aef
test ecx, ecx
je 0x402ae5
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402ad6
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402ad6
movzx eax, byte [edx]
jmp 0x402adb
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402ae5
mov byte [edi + 5], al
jmp 0x402aeb
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [edi + 5], bl
jne 0x402a23
mov ecx, dword [edi]
test ecx, ecx
je 0x402b3a
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x402b21
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x402b21
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 0x402b26
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x402b3a
xor al, al
mov byte [esp + 0x12], 1
mov byte [edi + 4], al
jmp 0x402996
mov al, 1
mov dword [edi], 0
mov byte [edi + 4], al
mov byte [esp + 0x12], al
jmp 0x402996
mov byte [esp + 0x12], 1
lea ecx, [esp + 0x40]
call fcn.004052e0
mov esi, dword [esp + 0x34]
mov bl, byte [esp + 0x11]
test bl, bl
je 0x402b7f
cmp byte [esp + 0x10], 0
je 0x402b7f
test esi, esi
jne 0x402b7f
mov eax, dword [esp + 0x14]
mov byte [eax], 0x30
inc eax
mov dword [esp + 0x14], eax
call fcn.00415496
cmp byte [edi + 4], 0
mov eax, dword [eax]
mov bh, byte [eax]
jne 0x402bc3
mov ecx, dword [edi]
test ecx, ecx
je 0x402bb9
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402baa
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402baa
movzx eax, byte [edx]
jmp 0x402baf
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402bb9
mov byte [edi + 5], al
jmp 0x402bbf
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [ebp + 4], 0
jne 0x402c00
mov ecx, dword [ebp]
test ecx, ecx
je 0x402bf5
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402be6
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402be6
movzx eax, byte [edx]
jmp 0x402beb
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402bf5
mov byte [ebp + 5], al
jmp 0x402bfc
mov dword [ebp], 0
mov byte [ebp + 4], 1
cmp dword [edi], 0
mov eax, dword [ebp]
jne 0x402c12
test eax, eax
je 0x402cbb
jmp 0x402c1a
test eax, eax
jne 0x402cbb
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 0x402c64
mov edx, dword [edi]
test edx, edx
je 0x402c5a
mov ecx, dword [edx + 0x1c]
mov ecx, dword [ecx]
test ecx, ecx
je 0x402c49
mov eax, dword [edx + 0x2c]
cmp dword [eax], 0
jle 0x402c49
movzx eax, byte [ecx]
jmp 0x402c50
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402c5a
mov byte [edi + 5], al
jmp 0x402c60
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [edi + 5], bl
jne 0x402cb7
mov eax, dword [esp + 0x14]
mov byte [eax], bh
inc eax
mov ecx, dword [edi]
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x402cad
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x402c9d
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x402c9d
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 0x402ca2
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x402cad
mov byte [edi + 4], 0
jmp 0x402cb7
mov dword [edi], 0
mov byte [edi + 4], 1
mov bl, byte [esp + 0x11]
test esi, esi
jne 0x402d61
mov esi, dword [esp + 0x20]
mov bl, byte [esp + 0x18]
nop dword [eax + eax]
cmp byte [edi + 4], 0
jne 0x402d0b
mov ecx, dword [edi]
test ecx, ecx
je 0x402d01
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402cf2
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402cf2
movzx eax, byte [edx]
jmp 0x402cf7
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402d01
mov byte [edi + 5], al
jmp 0x402d07
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [ebp + 4], 0
jne 0x402d48
mov ecx, dword [ebp]
test ecx, ecx
je 0x402d3d
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402d2e
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402d2e
movzx eax, byte [edx]
jmp 0x402d33
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402d3d
mov byte [ebp + 5], al
jmp 0x402d44
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov ecx, dword [edi]
mov eax, dword [ebp]
test ecx, ecx
jne 0x402d96
test eax, eax
jne 0x402d9a
mov bl, byte [esp + 0x11]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x34]
cmp byte [edi + 4], 0
jne 0x402e46
mov ecx, dword [edi]
test ecx, ecx
je 0x402e3c
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402e2d
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402e2d
movzx eax, byte [edx]
jmp 0x402e32
test eax, eax
jne 0x402d55
cmp byte [edi + 4], 0
jne 0x402dd3
test ecx, ecx
je 0x402dc9
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402dba
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402dba
movzx eax, byte [edx]
jmp 0x402dbf
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402dc9
mov byte [edi + 5], al
jmp 0x402dcf
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [edi + 5], bl
jne 0x402d55
mov ecx, dword [edi]
dec esi
mov byte [esp + 0x10], 1
test ecx, ecx
je 0x402e1e
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x402e0b
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x402e0b
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 0x402e10
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x402e1e
mov byte [edi + 4], 0
jmp 0x402cd0
mov dword [edi], 0
mov byte [edi + 4], 1
jmp 0x402cd0
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402e3c
mov byte [edi + 5], al
jmp 0x402e42
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [ebp + 4], 0
jne 0x402e83
mov ecx, dword [ebp]
test ecx, ecx
je 0x402e78
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402e69
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402e69
movzx eax, byte [edx]
jmp 0x402e6e
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402e78
mov byte [ebp + 5], al
jmp 0x402e7f
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov ecx, dword [edi]
mov eax, dword [ebp]
test ecx, ecx
jne 0x402f43
test eax, eax
jne 0x402f4b
cmp byte [esp + 0x38], 0
je 0x402ecf
mov eax, dword [esp + 0x14]
mov cl, byte [eax - 1]
lea edx, [eax - 1]
cmp cl, bh
jne 0x402eb3
mov cl, byte [eax - 2]
lea edx, [eax - 2]
cmp cl, 0x30
je 0x402ecb
test bl, bl
mov eax, 0x35
mov esi, 0x38
cmovne eax, esi
cmp cl, al
jne 0x402ecf
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 0x403740
cmp byte [edi + 4], bl
jne 0x403048
mov ecx, dword [edi]
test ecx, ecx
je 0x403042
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x403033
mov eax, dword [ecx + 0x2c]
cmp dword [eax], ebx
jle 0x403033
movzx eax, byte [edx]
jmp 0x403038
test eax, eax
jne 0x402e98
cmp byte [edi + 4], 0
jne 0x402f84
test ecx, ecx
je 0x402f7a
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x402f6b
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x402f6b
movzx eax, byte [edx]
jmp 0x402f70
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x402f7a
mov byte [edi + 5], al
jmp 0x402f80
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.00408df0
lea ecx, [esp + 0x70]
sub eax, ecx
cmp eax, dword [esp + 0x30]
jae 0x402e98
cmp esi, dword [esp + 0x9c]
jge 0x402fce
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 0x402fe3
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 0x403024
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x403011
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x403011
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 0x403016
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x403024
mov byte [edi + 4], 0
jmp 0x402d61
mov dword [edi], 0
mov byte [edi + 4], 1
jmp 0x402d61
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x403042
mov byte [edi + 5], al
jmp 0x403044
mov dword [edi], ebx
mov byte [edi + 4], 1
cmp byte [ebp + 4], bl
jne 0x40307f
mov ecx, dword [ebp]
test ecx, ecx
je 0x403078
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x403069
mov eax, dword [ecx + 0x2c]
cmp dword [eax], ebx
jle 0x403069
movzx eax, byte [edx]
jmp 0x40306e
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x403078
mov byte [ebp + 5], al
jmp 0x40307b
mov dword [ebp], ebx
mov byte [ebp + 4], 1
mov ecx, dword [edi]
mov eax, dword [ebp]
test ecx, ecx
jne 0x403092
test eax, eax
je 0x4034da
jmp 0x40309a
test eax, eax
jne 0x4034da
mov dl, byte [edi + 4]
test dl, dl
jne 0x4030d1
test ecx, ecx
je 0x4030c9
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x4030ba
mov eax, dword [ecx + 0x2c]
cmp dword [eax], ebx
jle 0x4030ba
movzx eax, byte [edx]
jmp 0x4030bf
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x4030c9
mov byte [edi + 5], al
jmp 0x4030cb
mov dword [edi], ebx
mov byte [edi + 4], 1
mov dl, 1
mov al, byte [edi + 5]
cmp al, byte [esp + 0x13]
je 0x40311b
test dl, dl
jne 0x403111
mov ecx, dword [edi]
test ecx, ecx
je 0x403108
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x4030f9
mov eax, dword [ecx + 0x2c]
cmp dword [eax], ebx
jle 0x4030f9
movzx eax, byte [edx]
jmp 0x4030fe
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x403108
mov byte [edi + 5], al
jmp 0x40310d
mov al, byte [edi + 5]
mov dword [edi], ebx
mov byte [edi + 4], 1
cmp al, byte [esp + 0x27]
jne 0x4034da
mov ecx, dword [edi]
test ecx, ecx
je 0x40317e
mov eax, dword [ecx + 0x1c]
cmp dword [eax], ebx
je 0x403143
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x403143
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 0x403148
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x40317e
mov byte [edi + 4], bl
mov ecx, dword [edi]
mov byte [esp + 0x10], bl
test ecx, ecx
je 0x403182
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x40316f
mov eax, dword [ecx + 0x2c]
cmp dword [eax], ebx
jle 0x40316f
movzx eax, byte [edx]
jmp 0x403174
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x403182
mov byte [edi + 5], al
jmp 0x403184
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 0x4031c8
mov ecx, dword [ebp]
test ecx, ecx
je 0x4031c1
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x4031b2
mov eax, dword [ecx + 0x2c]
cmp dword [eax], ebx
jle 0x4031b2
movzx eax, byte [edx]
jmp 0x4031b7
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x4031c1
mov byte [ebp + 5], al
jmp 0x4031c4
mov dword [ebp], ebx
mov byte [ebp + 4], 1
mov ecx, dword [edi]
mov eax, dword [ebp]
test ecx, ecx
jne 0x4031db
test eax, eax
je 0x4032fa
jmp 0x4031e3
test eax, eax
jne 0x4032fa
mov dl, byte [edi + 4]
test dl, dl
jne 0x40321a
test ecx, ecx
je 0x403212
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x403203
mov eax, dword [ecx + 0x2c]
cmp dword [eax], ebx
jle 0x403203
movzx eax, byte [edx]
jmp 0x403208
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x403212
mov byte [edi + 5], al
jmp 0x403214
mov dword [edi], ebx
mov byte [edi + 4], 1
mov dl, 1
mov al, byte [edi + 5]
cmp al, byte [esp + 0x19]
jne 0x40326b
mov ecx, dword [edi]
test ecx, ecx
je 0x40325f
mov eax, dword [ecx + 0x1c]
cmp dword [eax], ebx
je 0x40324b
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x40324b
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 0x403250
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x40325f
xor al, al
mov byte [edi + 4], al
jmp 0x4032f2
mov al, 1
mov dword [edi], ebx
mov byte [edi + 4], al
jmp 0x4032f2
test dl, dl
jne 0x4032a2
mov ecx, dword [edi]
test ecx, ecx
je 0x403299
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x40328a
mov eax, dword [ecx + 0x2c]
cmp dword [eax], ebx
jle 0x40328a
movzx eax, byte [edx]
jmp 0x40328f
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x403299
mov byte [edi + 5], al
jmp 0x40329e
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 0x4032fa
mov ecx, dword [edi]
mov byte [esp + 0x1b], 1
test ecx, ecx
je 0x4032ec
mov eax, dword [ecx + 0x1c]
cmp dword [eax], ebx
je 0x4032dd
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x4032dd
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 0x4032e2
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x4032ec
mov byte [edi + 4], bl
jmp 0x4032f2
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 0x40333b
mov ecx, dword [edi]
test ecx, ecx
je 0x403331
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x403322
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x403322
movzx eax, byte [edx]
jmp 0x403327
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x403331
mov byte [edi + 5], al
jmp 0x403337
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [ebp + 4], 0
jne 0x403378
mov ecx, dword [ebp]
test ecx, ecx
je 0x40336d
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x40335e
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x40335e
movzx eax, byte [edx]
jmp 0x403363
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x40336d
mov byte [ebp + 5], al
jmp 0x403374
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov ecx, dword [edi]
mov eax, dword [ebp]
test ecx, ecx
jne 0x4033c5
test eax, eax
jne 0x4033c9
mov ebx, dword [esp + 0x2c]
nop dword [eax]
cmp byte [edi + 4], 0
jne 0x403474
mov ecx, dword [edi]
test ecx, ecx
je 0x40346a
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x40345b
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x40345b
movzx eax, byte [edx]
jmp 0x403460
test eax, eax
jne 0x403385
cmp byte [edi + 4], 0
jne 0x403402
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 [edi + 5], al
jmp 0x4033fe
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [edi + 5], bl
jne 0x403385
mov ecx, dword [edi]
mov byte [esp + 0x10], 1
test ecx, ecx
je 0x40344c
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x403439
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x403439
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 0x40343e
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x40344c
mov byte [edi + 4], 0
jmp 0x403300
mov dword [edi], 0
mov byte [edi + 4], 1
jmp 0x403300
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x40346a
mov byte [edi + 5], al
jmp 0x403470
mov dword [edi], 0
mov byte [edi + 4], 1
cmp byte [ebp + 4], 0
jne 0x4034b1
mov ecx, dword [ebp]
test ecx, ecx
je 0x4034a6
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x403497
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x403497
movzx eax, byte [edx]
jmp 0x40349c
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x4034a6
mov byte [ebp + 5], al
jmp 0x4034ad
mov dword [ebp], 0
mov byte [ebp + 4], 1
mov ecx, dword [edi]
mov eax, dword [ebp]
test ecx, ecx
jne 0x403598
test eax, eax
jne 0x4035a0
cmp byte [esp + 0x1b], 0
je 0x4034cf
neg ebx
cmp byte [esp + 0x10], 0
je 0x403740
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 0x40351a
test esi, esi
js 0x403518
cmp ebx, edi
jge 0x403687
cmp esi, ebp
jge 0x403687
test ebx, ebx
jg 0x403538
test esi, esi
jg 0x403538
mov ecx, edi
neg ecx
cmp ebx, ecx
jle 0x403685
mov eax, ebp
neg eax
cmp esi, eax
jle 0x403685
mov eax, ebx
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
cmp ecx, edi
jg 0x403554
mov eax, esi
cdq
xor eax, edx
sub eax, edx
cmp eax, ebp
jle 0x40368d
cmp byte [esp + 0x11], 0
je 0x403569
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 0x403673
cmp byte [esp + 0x11], 0
jne 0x40358f
mov eax, ecx
sub ebx, eax
add esi, ecx
jmp 0x403500
test eax, eax
jne 0x4034c6
cmp byte [edi + 4], 0
jne 0x4035d9
test ecx, ecx
je 0x4035cf
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x4035c0
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4035c0
movzx eax, byte [edx]
jmp 0x4035c5
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
je 0x4035cf
mov byte [edi + 5], al
jmp 0x4035d5
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.00408df0
mov ecx, eax
lea eax, [esp + 0x70]
sub ecx, eax
cmp ecx, 0xa
jae 0x4034c6
cmp ebx, 0xccccccc
jl 0x40361d
jne 0x403616
cmp ecx, 7
jle 0x40361d
mov ebx, 0x7fffffff
jmp 0x403623
lea eax, [ebx + ebx*4]
lea ebx, [ecx + eax*2]
mov ecx, dword [edi]
mov byte [esp + 0x10], 1
test ecx, ecx
je 0x403664
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x403651
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x403651
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 0x403656
mov eax, dword [ecx]
call dword [eax + 0x1c]
cmp eax, 0xffffffff
je 0x403664
mov byte [edi + 4], 0
jmp 0x403390
mov dword [edi], 0
mov byte [edi + 4], 1
jmp 0x403390
cmp byte [esp + 0x11], 0
jne 0x40367c
mov eax, ecx
add ebx, eax
sub esi, ecx
jmp 0x403500
mov edi, ecx
mov cl, byte [esp + 0x11]
jmp 0x4036a9
mov cl, byte [esp + 0x11]
test cl, cl
je 0x403698
shl esi, 2
add ebx, esi
cmp ebx, edi
jg 0x4036a9
mov eax, edi
mov edi, ebx
neg eax
cmp ebx, eax
cmovl edi, eax
mov ebp, dword [esp + 0x14]
test edi, edi
je 0x40371c
test cl, cl
mov eax, 0x65
mov edx, 0x70
cmovne eax, edx
mov byte [ebp], al
inc ebp
test edi, edi
jns 0x4036cd
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 0x403712
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 0x4036e0
push ebp
push esi
call fcn.00408ec0
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 0x403745
xor eax, eax
mov bx, ax
mov ecx, dword [esp + 0x6c]
cmp ecx, 0xf
jbe 0x403777
mov edx, dword [esp + 0x58]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40376d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403793
push ecx
push edx
call fcn.0040b46d
add esp, 8
mov ecx, dword [esp + 0x90]
mov ax, bx
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0040b480
add esp, 0x84
ret
call fcn.0040ffdf
int3