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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x470063
push eax
mov dword fs:[0], esp
sub esp, 0x88
push ebx
push esi
mov esi, dword [ebp + 0x18]
push edi
mov ecx, esi
call fcn.00405b40
and eax, 0x3000
cmp eax, 0x3000
jne 0x4253b7
push dword [ebp + 0x1c]
push esi
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.004264e0
add esp, 0x18
mov ecx, dword [esp + 0x94]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x2c]
push eax
mov ecx, esi
call fcn.0040d690
push eax
mov dword [esp + 0xa0], 0
call fcn.004185b0
mov ebx, eax
add esp, 4
lea ecx, [esp + 0x2c]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x9c], 0xffffffff
call fcn.00406ee0
lea eax, [esp + 0x78]
push eax
mov ecx, ebx
call fcn.00417c80
mov ebx, dword [ebp + 0xc]
lea eax, [esp + 0x10]
push eax
mov ecx, esi
mov dword [esp + 0xa0], 1
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x2f], 0
call fcn.0040d690
push eax
mov byte [esp + 0xa0], 2
call fcn.0040fda0
add esp, 4
lea ecx, [esp + 0x10]
mov esi, eax
mov byte [esp + 0x9c], 1
call fcn.00406ee0
mov edx, dword [esi]
lea eax, [esp + 0x44]
push eax
push 0x4735c2
push str.0123456789_Ee
mov ecx, esi
call dword [edx + 0x2c]
mov esi, dword [ebp + 0x10]
cmp byte [esi + 4], 0
jne 0x42546a
mov ecx, esi
call fcn.004279c0
mov edi, dword [ebp + 0x14]
cmp byte [edi + 4], 0
jne 0x42547a
mov ecx, edi
call fcn.004279c0
cmp dword [esi], 0
jne 0x425486
cmp dword [edi], 0
je 0x4254d1
jmp 0x42548b
cmp dword [edi], 0
jne 0x4254d1
cmp byte [esi + 4], 0
jne 0x425498
mov ecx, esi
call fcn.004279c0
mov ax, word [esi + 6]
cmp ax, word [esp + 0x5a]
jne 0x4254a8
mov byte [ebx], 0x2b
jmp 0x4254c3
cmp byte [esi + 4], 0
jne 0x4254b5
mov ecx, esi
call fcn.004279c0
mov ax, word [esi + 6]
cmp ax, word [esp + 0x58]
jne 0x4254d1
mov byte [ebx], 0x2d
lea ecx, [ebx + 1]
mov dword [esp + 0x18], ecx
mov ecx, esi
call fcn.00427940
xor al, al
mov byte [esp + 0xf], al
xor eax, eax
xor ebx, ebx
lea ecx, [esp + 0x78]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x34], eax
call fcn.004083e0
mov cl, byte [eax]
mov dword [esp + 0x14], eax
cmp cl, 0x7f
je 0x425734
test cl, cl
jle 0x425734
lea ecx, [esp + 0x78]
call fcn.00407940
test eax, eax
jne 0x425516
mov dword [esp + 0x10], ebx
jmp 0x425526
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
call dword [eax + 0x10]
movzx eax, ax
mov dword [esp + 0x10], eax
lea ecx, [esp + 0x43]
call fcn.004030b0
push eax
lea ecx, [esp + 0x64]
call fcn.004078e0
push 0
push 0
lea ecx, [esp + 0x68]
call fcn.004087c0
push 0
push 1
lea ecx, [esp + 0x68]
call fcn.00408860
test al, al
je 0x42557d
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x64]
mov byte [esp + 0x3c], bl
call fcn.004083e0
push eax
call fcn.00408940
add esp, 8
lea ecx, [esp + 0x60]
push 1
call fcn.00408950
mov byte [esp + 0x9c], 3
xor ebx, ebx
cmp byte [esi + 4], 0
jne 0x425594
mov ecx, esi
call fcn.004279c0
cmp byte [edi + 4], 0
jne 0x4255a1
mov ecx, edi
call fcn.004279c0
cmp dword [esi], 0
jne 0x425621
cmp dword [edi], 0
jne 0x425626
test ebx, ebx
je 0x4255c4
lea ecx, [esp + 0x60]
call fcn.004083e0
add eax, ebx
cmp byte [eax], 0
jle 0x425718
inc ebx
mov edx, dword [esp + 0x14]
test ebx, ebx
je 0x42571d
cmp byte [edx], 0x7f
je 0x42571d
dec ebx
je 0x4255f5
lea ecx, [esp + 0x60]
call fcn.004083e0
mov edx, dword [esp + 0x14]
add eax, ebx
mov cl, byte [edx]
cmp cl, byte [eax]
jne 0x425718
test ebx, ebx
jne 0x425610
lea ecx, [esp + 0x60]
call fcn.004083e0
mov edx, dword [esp + 0x14]
mov cl, byte [edx]
cmp cl, byte [eax]
jl 0x425718
cmp byte [edx + 1], 0
lea eax, [edx + 1]
jle 0x4255c8
mov edx, eax
mov dword [esp + 0x14], edx
jmp 0x4255c8
cmp dword [edi], 0
jne 0x4255ab
cmp byte [esi + 4], 0
jne 0x425633
mov ecx, esi
call fcn.004279c0
mov cx, word [esp + 0x44]
lea eax, [esp + 0x44]
test cx, cx
je 0x425659
movzx edx, word [esi + 6]
movzx ecx, cx
cmp cx, dx
je 0x425659
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x425648
lea ecx, [esp + 0x44]
sub eax, ecx
sar eax, 1
cmp eax, 0xa
jae 0x4256c2
mov ecx, dword [esp + 0x24]
mov byte [esp + 0xf], 1
cmp ecx, 0x24
jl 0x42567a
inc dword [esp + 0x34]
jmp 0x425698
test eax, eax
jne 0x425682
test ecx, ecx
je 0x425698
mov edx, dword [esp + 0x18]
mov al, byte [eax + str.0123456789_Ee]
mov byte [edx], al
inc edx
inc ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x60]
call fcn.004083e0
add eax, ebx
cmp byte [eax], 0x7f
je 0x42570c
lea ecx, [esp + 0x60]
call fcn.004083e0
inc byte [eax + ebx]
add eax, ebx
mov ecx, esi
call fcn.00427940
jmp 0x425587
lea ecx, [esp + 0x60]
call fcn.004083e0
add eax, ebx
cmp byte [eax], 0
je 0x4255ab
mov eax, dword [esp + 0x10]
test ax, ax
je 0x4255ab
cmp byte [esi + 4], 0
jne 0x4256f4
mov ecx, esi
call fcn.004279c0
mov eax, dword [esp + 0x10]
cmp word [esi + 6], ax
jne 0x4255ab
push 0
push 1
lea ecx, [esp + 0x68]
call fcn.00415e90
inc ebx
mov ecx, esi
call fcn.00427940
jmp 0x425587
mov byte [esp + 0x2b], 1
lea ecx, [esp + 0x60]
mov byte [esp + 0x9c], 1
call fcn.00408290
mov ebx, dword [esp + 0x24]
jmp 0x42575c
cmp byte [esi + 4], 0
jne 0x425741
mov ecx, esi
call fcn.004279c0
cmp byte [edi + 4], 0
jne 0x42574e
mov ecx, edi
call fcn.004279c0
cmp dword [esi], 0
jne 0x4257a6
cmp dword [edi], 0
jne 0x4257ab
mov dword [esp + 0x24], ebx
mov al, byte [esp + 0xf]
test al, al
je 0x425775
test ebx, ebx
jne 0x425775
mov eax, dword [esp + 0x18]
inc eax
mov byte [eax - 1], 0x30
mov dword [esp + 0x18], eax
cmp byte [esi + 4], 0
jne 0x425782
mov ecx, esi
call fcn.004279c0
cmp byte [edi + 4], 0
jne 0x42578f
mov ecx, edi
call fcn.004279c0
cmp dword [esi], 0
jne 0x425837
cmp dword [edi], 0
je 0x425876
jmp 0x42583c
cmp dword [edi], 0
jne 0x425758
cmp byte [esi + 4], 0
jne 0x4257b8
mov ecx, esi
call fcn.004279c0
mov cx, word [esp + 0x44]
lea eax, [esp + 0x44]
test cx, cx
je 0x4257e1
movzx edx, word [esi + 6]
movzx ecx, cx
lea ecx, [ecx]
cmp cx, dx
je 0x4257e1
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x4257d0
lea ecx, [esp + 0x44]
sub eax, ecx
sar eax, 1
cmp eax, 0xa
jae 0x425758
cmp ebx, 0x24
jl 0x42580c
inc dword [esp + 0x34]
mov ecx, esi
mov byte [esp + 0xf], 1
call fcn.00427940
jmp 0x425734
test eax, eax
jne 0x425814
test ebx, ebx
je 0x425826
mov ecx, dword [esp + 0x18]
mov al, byte [eax + str.0123456789_Ee]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x18], ecx
inc ebx
mov ecx, esi
mov byte [esp + 0xf], 1
call fcn.00427940
jmp 0x425734
cmp dword [edi], 0
jne 0x425876
cmp byte [esi + 4], 0
jne 0x425849
mov ecx, esi
call fcn.004279c0
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
call dword [eax + 0xc]
movzx eax, ax
cmp word [esi + 6], ax
jne 0x425876
call fcn.0045073e
mov eax, dword [eax]
mov ecx, dword [esp + 0x18]
mov al, byte [eax]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x18], ecx
mov ecx, esi
call fcn.00427940
test ebx, ebx
jne 0x4258c1
mov ebx, dword [esp + 0x34]
mov edi, edi
cmp byte [esi + 4], 0
jne 0x42588d
mov ecx, esi
call fcn.004279c0
cmp byte [edi + 4], 0
jne 0x42589a
mov ecx, edi
call fcn.004279c0
mov ecx, dword [esi]
test ecx, ecx
jne 0x425900
cmp dword [edi], ecx
jne 0x425905
mov dword [esp + 0x34], ebx
test ebx, ebx
mov ebx, dword [esp + 0x24]
jns 0x4258c1
mov eax, dword [esp + 0x18]
inc eax
inc dword [esp + 0x34]
mov byte [eax - 1], 0x30
mov dword [esp + 0x18], eax
cmp byte [esi + 4], 0
jne 0x425a3e
mov ecx, dword [esi]
test ecx, ecx
je 0x425a34
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x4259fb
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4259fb
call fcn.00409cc0
push eax
call fcn.00409d60
add esp, 4
jmp 0x425a00
cmp dword [edi], 0
jne 0x4258a4
cmp byte [esi + 4], 0
jne 0x425972
test ecx, ecx
je 0x425968
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x42592f
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x42592f
call fcn.00409cc0
push eax
call fcn.00409d60
add esp, 4
jmp 0x425934
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x10], eax
call fcn.00409d70
movzx eax, ax
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.00409d30
add esp, 8
test al, al
jne 0x425968
mov ax, word [esp + 0x10]
mov word [esi + 6], ax
jmp 0x42596e
mov dword [esi], 0
mov byte [esi + 4], 1
mov ax, word [esi + 6]
cmp ax, word [esp + 0x44]
jne 0x4258a4
mov ecx, dword [esi]
dec ebx
mov byte [esp + 0xf], 1
test ecx, ecx
je 0x4259ec
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x4259b6
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x4259b6
dec eax
mov dword [edx], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
push edx
lea eax, [edx + 2]
mov dword [ecx], eax
call fcn.00409d60
add esp, 4
jmp 0x4259bb
mov eax, dword [ecx]
call dword [eax + 0x1c]
movzx eax, ax
mov dword [esp + 0x1c], eax
call fcn.00409d70
movzx eax, ax
mov dword [esp + 0x14], eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x18]
push eax
call fcn.00409d30
add esp, 8
test al, al
jne 0x4259ec
mov byte [esi + 4], al
jmp 0x425880
mov dword [esi], 0
mov byte [esi + 4], 1
jmp 0x425880
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x10], eax
call fcn.00409d70
movzx eax, ax
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.00409d30
add esp, 8
test al, al
jne 0x425a34
mov ax, word [esp + 0x10]
mov word [esi + 6], ax
jmp 0x425a3a
mov dword [esi], 0
mov byte [esi + 4], 1
cmp byte [edi + 4], 0
jne 0x425aad
mov ecx, dword [edi]
test ecx, ecx
je 0x425aa3
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x425a6a
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x425a6a
call fcn.00409cc0
push eax
call fcn.00409d60
add esp, 4
jmp 0x425a6f
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x14], eax
call fcn.00409d70
movzx eax, ax
mov dword [esp + 0x3e], eax
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x42]
push eax
call fcn.00409d30
add esp, 8
test al, al
jne 0x425aa3
mov ax, word [esp + 0x14]
mov word [edi + 6], ax
jmp 0x425aa9
mov dword [edi], 0
mov byte [edi + 4], 1
mov ecx, dword [esi]
test ecx, ecx
jne 0x425b02
cmp dword [edi], ecx
jne 0x425b07
mov al, byte [esp + 0xf]
test al, al
je 0x425d02
cmp byte [esi + 4], 0
jne 0x425c85
mov ecx, dword [esi]
test ecx, ecx
je 0x425c7b
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x425c42
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x425c42
call fcn.00409cc0
push eax
call fcn.00409d60
add esp, 4
jmp 0x425c47
cmp dword [edi], 0
jne 0x425ab7
cmp byte [esi + 4], 0
jne 0x425b74
test ecx, ecx
je 0x425b6a
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x425b31
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x425b31
call fcn.00409cc0
push eax
call fcn.00409d60
add esp, 4
jmp 0x425b36
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x24], eax
call fcn.00409d70
movzx eax, ax
mov dword [esp + 0x30], eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x34]
push eax
call fcn.00409d30
add esp, 8
test al, al
jne 0x425b6a
mov ax, word [esp + 0x24]
mov word [esi + 6], ax
jmp 0x425b70
mov dword [esi], 0
mov byte [esi + 4], 1
mov cx, word [esp + 0x44]
lea eax, [esp + 0x44]
test cx, cx
je 0x425ba1
movzx edx, word [esi + 6]
movzx ecx, cx
lea esp, [esp]
cmp cx, dx
je 0x425ba1
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x425b90
lea ecx, [esp + 0x44]
sub eax, ecx
sar eax, 1
cmp eax, 0xa
jae 0x425ab7
cmp ebx, 0x24
jge 0x425bc9
mov ecx, dword [esp + 0x18]
mov al, byte [eax + str.0123456789_Ee]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x18], ecx
inc ebx
mov ecx, dword [esi]
mov byte [esp + 0xf], 1
test ecx, ecx
je 0x425c33
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x425bfd
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x425bfd
dec eax
mov dword [edx], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
push edx
lea eax, [edx + 2]
mov dword [ecx], eax
call fcn.00409d60
add esp, 4
jmp 0x425c02
mov eax, dword [ecx]
call dword [eax + 0x1c]
movzx eax, ax
mov dword [esp + 0x1c], eax
call fcn.00409d70
movzx eax, ax
mov dword [esp + 0x20], eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00409d30
add esp, 8
test al, al
jne 0x425c33
mov byte [esi + 4], al
jmp 0x4258c1
mov dword [esi], 0
mov byte [esi + 4], 1
jmp 0x4258c1
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x10], eax
call fcn.00409d70
movzx eax, ax
mov dword [esp + 0x20], eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00409d30
add esp, 8
test al, al
jne 0x425c7b
mov ax, word [esp + 0x10]
mov word [esi + 6], ax
jmp 0x425c81
mov dword [esi], 0
mov byte [esi + 4], 1
cmp byte [edi + 4], 0
jne 0x425cf4
mov ecx, dword [edi]
test ecx, ecx
je 0x425cea
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x425cb1
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x425cb1
call fcn.00409cc0
push eax
call fcn.00409d60
add esp, 4
jmp 0x425cb6
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x14], eax
call fcn.00409d70
movzx eax, ax
mov dword [esp + 0x30], eax
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x34]
push eax
call fcn.00409d30
add esp, 8
test al, al
jne 0x425cea
mov ax, word [esp + 0x14]
mov word [edi + 6], ax
jmp 0x425cf0
mov dword [edi], 0
mov byte [edi + 4], 1
mov ecx, dword [esi]
test ecx, ecx
jne 0x425d19
cmp dword [edi], ecx
jne 0x425d1e
mov al, byte [esp + 0xf]
cmp byte [esp + 0x2b], 0
jne 0x425d11
test al, al
jne 0x4264b6
mov ecx, dword [ebp + 0xc]
jmp 0x4264ba
cmp dword [edi], 0
jne 0x425cfe
cmp byte [esi + 4], 0
jne 0x425d8b
test ecx, ecx
je 0x425d81
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x425d48
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x425d48
call fcn.00409cc0
push eax
call fcn.00409d60
add esp, 4
jmp 0x425d4d
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x10], eax
call fcn.00409d70
movzx eax, ax
mov dword [esp + 0x20], eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00409d30
add esp, 8
test al, al
jne 0x425d81
mov ax, word [esp + 0x10]
mov word [esi + 6], ax
jmp 0x425d87
mov dword [esi], 0
mov byte [esi + 4], 1
mov ax, word [esi + 6]
cmp ax, word [esp + 0x5e]
je 0x425e18
cmp byte [esi + 4], 0
jne 0x425e09
mov ecx, dword [esi]
test ecx, ecx
je 0x425dff
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x425dc6
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x425dc6
call fcn.00409cc0
push eax
call fcn.00409d60
add esp, 4
jmp 0x425dcb
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x10], eax
call fcn.00409d70
movzx eax, ax
mov dword [esp + 0x20], eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00409d30
add esp, 8
test al, al
jne 0x425dff
mov ax, word [esp + 0x10]
mov word [esi + 6], ax
jmp 0x425e05
mov dword [esi], 0
mov byte [esi + 4], 1
mov ax, word [esi + 6]
cmp ax, word [esp + 0x5c]
jne 0x425cfe
mov eax, dword [esp + 0x18]
inc eax
mov byte [eax - 1], 0x65
mov ecx, dword [esi]
mov dword [esp + 0x18], eax
test ecx, ecx
je 0x425e87
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x425e54
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x425e54
dec eax
mov dword [edx], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
push edx
lea eax, [edx + 2]
mov dword [ecx], eax
call fcn.00409d60
add esp, 4
jmp 0x425e59
mov eax, dword [ecx]
call dword [eax + 0x1c]
movzx eax, ax
mov dword [esp + 0x1c], eax
call fcn.00409d70
movzx eax, ax
mov dword [esp + 0x20], eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00409d30
add esp, 8
test al, al
jne 0x425e87
mov byte [esi + 4], al
jmp 0x425e91
mov dword [esi], 0
mov byte [esi + 4], 1
xor ebx, ebx
cmp byte [esi + 4], bl
jne 0x425efb
mov ecx, dword [esi]
test ecx, ecx
je 0x425ef5
mov eax, dword [ecx + 0x1c]
cmp dword [eax], ebx
je 0x425ebc
mov eax, dword [ecx + 0x2c]
cmp dword [eax], ebx
jle 0x425ebc
call fcn.00409cc0
push eax
call fcn.00409d60
add esp, 4
jmp 0x425ec1
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x10], eax
call fcn.00409d70
movzx eax, ax
mov dword [esp + 0x20], eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00409d30
add esp, 8
test al, al
jne 0x425ef5
mov ax, word [esp + 0x10]
mov word [esi + 6], ax
jmp 0x425ef7
mov dword [esi], ebx
mov byte [esi + 4], 1
cmp byte [edi + 4], bl
jne 0x425f63
mov ecx, dword [edi]
test ecx, ecx
je 0x425f5d
mov eax, dword [ecx + 0x1c]
cmp dword [eax], ebx
je 0x425f24
mov eax, dword [ecx + 0x2c]
cmp dword [eax], ebx
jle 0x425f24
call fcn.00409cc0
push eax
call fcn.00409d60
add esp, 4
jmp 0x425f29
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x14], eax
call fcn.00409d70
movzx eax, ax
mov dword [esp + 0x30], eax
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x34]
push eax
call fcn.00409d30
add esp, 8
test al, al
jne 0x425f5d
mov ax, word [esp + 0x14]
mov word [edi + 6], ax
jmp 0x425f5f
mov dword [edi], ebx
mov byte [edi + 4], 1
mov ecx, dword [esi]
test ecx, ecx
jne 0x425f73
cmp dword [edi], ebx
je 0x426083
jmp 0x425f7b
cmp dword [edi], ebx
jne 0x426083
cmp byte [esi + 4], bl
jne 0x425fe1
test ecx, ecx
je 0x425fdb
mov eax, dword [ecx + 0x1c]
cmp dword [eax], ebx
je 0x425fa2
mov eax, dword [ecx + 0x2c]
cmp dword [eax], ebx
jle 0x425fa2
call fcn.00409cc0
push eax
call fcn.00409d60
add esp, 4
jmp 0x425fa7
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x10], eax
call fcn.00409d70
movzx eax, ax
mov dword [esp + 0x20], eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00409d30
add esp, 8
test al, al
jne 0x425fdb
mov ax, word [esp + 0x10]
mov word [esi + 6], ax
jmp 0x425fdd
mov dword [esi], ebx
mov byte [esi + 4], 1
mov ax, word [esi + 6]
cmp ax, word [esp + 0x5a]
jne 0x42602a
mov eax, dword [esp + 0x18]
mov byte [eax], 0x2b
mov ecx, dword [esi]
inc eax
mov dword [esp + 0x18], eax
test ecx, ecx
je 0x42607d
mov eax, dword [ecx + 0x1c]
cmp dword [eax], ebx
je 0x42604a
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x42604a
dec eax
mov dword [edx], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
push edx
lea eax, [edx + 2]
mov dword [ecx], eax
call fcn.00409d60
add esp, 4
jmp 0x42604f
cmp byte [esi + 4], bl
jne 0x426036
mov ecx, esi
call fcn.004279c0
mov ax, word [esi + 6]
cmp ax, word [esp + 0x58]
jne 0x426083
mov eax, dword [esp + 0x18]
mov byte [eax], 0x2d
jmp 0x425ff3
mov eax, dword [ecx]
call dword [eax + 0x1c]
movzx eax, ax
mov dword [esp + 0x1c], eax
call fcn.00409d70
movzx eax, ax
mov dword [esp + 0x20], eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00409d30
add esp, 8
test al, al
jne 0x42607d
mov byte [esi + 4], bl
jmp 0x426083
mov dword [esi], ebx
mov byte [esi + 4], 1
cmp byte [esi + 4], 0
jne 0x4260f2
mov ecx, dword [esi]
test ecx, ecx
je 0x4260e8
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x4260af
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4260af
call fcn.00409cc0
push eax
call fcn.00409d60
add esp, 4
jmp 0x4260b4
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x10], eax
call fcn.00409d70
movzx eax, ax
mov dword [esp + 0x20], eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00409d30
add esp, 8
test al, al
jne 0x4260e8
mov ax, word [esp + 0x10]
mov word [esi + 6], ax
jmp 0x4260ee
mov dword [esi], 0
mov byte [esi + 4], 1
cmp byte [edi + 4], 0
jne 0x426161
mov ecx, dword [edi]
test ecx, ecx
je 0x426157
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x42611e
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x42611e
call fcn.00409cc0
push eax
call fcn.00409d60
add esp, 4
jmp 0x426123
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x14], eax
call fcn.00409d70
movzx eax, ax
mov dword [esp + 0x30], eax
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x34]
push eax
call fcn.00409d30
add esp, 8
test al, al
jne 0x426157
mov ax, word [esp + 0x14]
mov word [edi + 6], ax
jmp 0x42615d
mov dword [edi], 0
mov byte [edi + 4], 1
mov ecx, dword [esi]
test ecx, ecx
jne 0x4261c4
cmp dword [edi], ecx
jne 0x4261c9
mov byte [esp + 0xf], bl
test bl, bl
mov ebx, 0
je 0x426185
mov eax, dword [esp + 0x18]
inc eax
mov byte [eax - 1], 0x30
mov dword [esp + 0x18], eax
cmp byte [esi + 4], 0
jne 0x4262fa
mov ecx, dword [esi]
test ecx, ecx
je 0x4262f0
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x4262b7
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4262b7
call fcn.00409cc0
push eax
call fcn.00409d60
add esp, 4
jmp 0x4262bc
cmp dword [edi], 0
jne 0x42616b
cmp byte [esi + 4], 0
jne 0x426236
test ecx, ecx
je 0x42622c
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x4261f3
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4261f3
call fcn.00409cc0
push eax
call fcn.00409d60
add esp, 4
jmp 0x4261f8
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x24], eax
call fcn.00409d70
movzx eax, ax
mov dword [esp + 0x3e], eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x42]
push eax
call fcn.00409d30
add esp, 8
test al, al
jne 0x42622c
mov ax, word [esp + 0x24]
mov word [esi + 6], ax
jmp 0x426232
mov dword [esi], 0
mov byte [esi + 4], 1
mov ax, word [esi + 6]
cmp ax, word [esp + 0x44]
jne 0x42616b
mov ecx, dword [esi]
mov bl, 1
test ecx, ecx
je 0x4262ac
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x426276
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x426276
dec eax
mov dword [edx], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
push edx
lea eax, [edx + 2]
mov dword [ecx], eax
call fcn.00409d60
add esp, 4
jmp 0x42627b
mov eax, dword [ecx]
call dword [eax + 0x1c]
movzx eax, ax
mov dword [esp + 0x1c], eax
call fcn.00409d70
movzx eax, ax
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.00409d30
add esp, 8
test al, al
jne 0x4262ac
mov byte [esi + 4], al
jmp 0x426083
mov dword [esi], 0
jmp 0x42607f
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x10], eax
call fcn.00409d70
movzx eax, ax
mov dword [esp + 0x20], eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00409d30
add esp, 8
test al, al
jne 0x4262f0
mov ax, word [esp + 0x10]
mov word [esi + 6], ax
jmp 0x4262f6
mov dword [esi], 0
mov byte [esi + 4], 1
cmp byte [edi + 4], 0
jne 0x426369
mov ecx, dword [edi]
test ecx, ecx
je 0x42635f
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x426326
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x426326
call fcn.00409cc0
push eax
call fcn.00409d60
add esp, 4
jmp 0x42632b
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x14], eax
call fcn.00409d70
movzx eax, ax
mov dword [esp + 0x30], eax
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x34]
push eax
call fcn.00409d30
add esp, 8
test al, al
jne 0x42635f
mov ax, word [esp + 0x14]
mov word [edi + 6], ax
jmp 0x426365
mov dword [edi], 0
mov byte [edi + 4], 1
mov ecx, dword [esi]
test ecx, ecx
jne 0x426379
cmp dword [edi], ecx
je 0x425cfe
jmp 0x426382
cmp dword [edi], 0
jne 0x425cfe
cmp byte [esi + 4], 0
jne 0x4263ef
test ecx, ecx
je 0x4263e5
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x4263ac
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4263ac
call fcn.00409cc0
push eax
call fcn.00409d60
add esp, 4
jmp 0x4263b1
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x24], eax
call fcn.00409d70
movzx eax, ax
mov dword [esp + 0x3e], eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x42]
push eax
call fcn.00409d30
add esp, 8
test al, al
jne 0x4263e5
mov ax, word [esp + 0x24]
mov word [esi + 6], ax
jmp 0x4263eb
mov dword [esi], 0
mov byte [esi + 4], 1
mov cx, word [esp + 0x44]
lea eax, [esp + 0x44]
test cx, cx
je 0x426415
movzx edx, word [esi + 6]
movzx ecx, cx
cmp cx, dx
je 0x426415
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x426404
lea ecx, [esp + 0x44]
sub eax, ecx
sar eax, 1
cmp eax, 0xa
jae 0x425cfe
cmp ebx, 8
jge 0x42643d
mov ecx, dword [esp + 0x18]
mov al, byte [eax + str.0123456789_Ee]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x18], ecx
inc ebx
mov ecx, dword [esi]
mov byte [esp + 0xf], 1
test ecx, ecx
je 0x4264a7
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x426471
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x426471
dec eax
mov dword [edx], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
push edx
lea eax, [edx + 2]
mov dword [ecx], eax
call fcn.00409d60
add esp, 4
jmp 0x426476
mov eax, dword [ecx]
call dword [eax + 0x1c]
movzx eax, ax
mov dword [esp + 0x1c], eax
call fcn.00409d70
movzx eax, ax
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.00409d30
add esp, 8
test al, al
jne 0x4264a7
mov byte [esi + 4], al
jmp 0x426185
mov dword [esi], 0
mov byte [esi + 4], 1
jmp 0x426185
mov ecx, dword [esp + 0x18]
mov byte [ecx], 0
lea ecx, [esp + 0x78]
call fcn.00408290
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x34]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret