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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4746d3
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.00407ce0
and eax, 0x3000
cmp eax, 0x3000
jne 0x428f47
push dword [ebp + 0x1c]
push esi
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0042a070
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.00411260
push eax
mov dword [esp + 0xa0], 0
call fcn.0041c0f0
mov ebx, eax
add esp, 4
lea ecx, [esp + 0x2c]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x9c], 0xffffffff
call fcn.00401540
lea eax, [esp + 0x78]
push eax
mov ecx, ebx
call fcn.0041b7e0
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.00411260
push eax
mov byte [esp + 0xa0], 2
call fcn.00413970
add esp, 4
lea ecx, [esp + 0x10]
mov esi, eax
mov byte [esp + 0x9c], 1
call fcn.00401540
mov edx, dword [esi]
lea eax, [esp + 0x44]
push eax
push 0x47762e
push str.0123456789_Ee
mov ecx, esi
call dword [edx + 0x2c]
mov esi, dword [ebp + 0x10]
cmp byte [esi + 4], 0
jne 0x428ffa
mov ecx, esi
call fcn.0042b550
mov edi, dword [ebp + 0x14]
cmp byte [edi + 4], 0
jne 0x42900a
mov ecx, edi
call fcn.0042b550
cmp dword [esi], 0
jne 0x429016
cmp dword [edi], 0
je 0x429061
jmp 0x42901b
cmp dword [edi], 0
jne 0x429061
cmp byte [esi + 4], 0
jne 0x429028
mov ecx, esi
call fcn.0042b550
mov ax, word [esi + 6]
cmp ax, word [esp + 0x5a]
jne 0x429038
mov byte [ebx], 0x2b
jmp 0x429053
cmp byte [esi + 4], 0
jne 0x429045
mov ecx, esi
call fcn.0042b550
mov ax, word [esi + 6]
cmp ax, word [esp + 0x58]
jne 0x429061
mov byte [ebx], 0x2d
lea ecx, [ebx + 1]
mov dword [esp + 0x18], ecx
mov ecx, esi
call fcn.0042b4d0
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.004044f0
mov cl, byte [eax]
mov dword [esp + 0x14], eax
cmp cl, 0x7f
je 0x4292c4
test cl, cl
jle 0x4292c4
lea ecx, [esp + 0x78]
call fcn.004036b0
test eax, eax
jne 0x4290a6
mov dword [esp + 0x10], ebx
jmp 0x4290b6
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.00404470
push eax
lea ecx, [esp + 0x64]
call fcn.00404480
push 0
push 0
lea ecx, [esp + 0x68]
call fcn.00404390
push 0
push 1
lea ecx, [esp + 0x68]
call fcn.004042a0
test al, al
je 0x42910d
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x64]
mov byte [esp + 0x3c], bl
call fcn.004044f0
push eax
call fcn.00401190
add esp, 8
lea ecx, [esp + 0x60]
push 1
call fcn.00404260
mov byte [esp + 0x9c], 3
xor ebx, ebx
cmp byte [esi + 4], 0
jne 0x429124
mov ecx, esi
call fcn.0042b550
cmp byte [edi + 4], 0
jne 0x429131
mov ecx, edi
call fcn.0042b550
cmp dword [esi], 0
jne 0x4291b1
cmp dword [edi], 0
jne 0x4291b6
test ebx, ebx
je 0x429154
lea ecx, [esp + 0x60]
call fcn.004044f0
add eax, ebx
cmp byte [eax], 0
jle 0x4292a8
inc ebx
mov edx, dword [esp + 0x14]
test ebx, ebx
je 0x4292ad
cmp byte [edx], 0x7f
je 0x4292ad
dec ebx
je 0x429185
lea ecx, [esp + 0x60]
call fcn.004044f0
mov edx, dword [esp + 0x14]
add eax, ebx
mov cl, byte [edx]
cmp cl, byte [eax]
jne 0x4292a8
test ebx, ebx
jne 0x4291a0
lea ecx, [esp + 0x60]
call fcn.004044f0
mov edx, dword [esp + 0x14]
mov cl, byte [edx]
cmp cl, byte [eax]
jl 0x4292a8
cmp byte [edx + 1], 0
lea eax, [edx + 1]
jle 0x429158
mov edx, eax
mov dword [esp + 0x14], edx
jmp 0x429158
cmp dword [edi], 0
jne 0x42913b
cmp byte [esi + 4], 0
jne 0x4291c3
mov ecx, esi
call fcn.0042b550
mov cx, word [esp + 0x44]
lea eax, [esp + 0x44]
test cx, cx
je 0x4291e9
movzx edx, word [esi + 6]
movzx ecx, cx
cmp cx, dx
je 0x4291e9
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x4291d8
lea ecx, [esp + 0x44]
sub eax, ecx
sar eax, 1
cmp eax, 0xa
jae 0x429252
mov ecx, dword [esp + 0x24]
mov byte [esp + 0xf], 1
cmp ecx, 0x24
jl 0x42920a
inc dword [esp + 0x34]
jmp 0x429228
test eax, eax
jne 0x429212
test ecx, ecx
je 0x429228
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.004044f0
add eax, ebx
cmp byte [eax], 0x7f
je 0x42929c
lea ecx, [esp + 0x60]
call fcn.004044f0
inc byte [eax + ebx]
add eax, ebx
mov ecx, esi
call fcn.0042b4d0
jmp 0x429117
lea ecx, [esp + 0x60]
call fcn.004044f0
add eax, ebx
cmp byte [eax], 0
je 0x42913b
mov eax, dword [esp + 0x10]
test ax, ax
je 0x42913b
cmp byte [esi + 4], 0
jne 0x429284
mov ecx, esi
call fcn.0042b550
mov eax, dword [esp + 0x10]
cmp word [esi + 6], ax
jne 0x42913b
push 0
push 1
lea ecx, [esp + 0x68]
call fcn.00419a00
inc ebx
mov ecx, esi
call fcn.0042b4d0
jmp 0x429117
mov byte [esp + 0x2b], 1
lea ecx, [esp + 0x60]
mov byte [esp + 0x9c], 1
call fcn.004033e0
mov ebx, dword [esp + 0x24]
jmp 0x4292ec
cmp byte [esi + 4], 0
jne 0x4292d1
mov ecx, esi
call fcn.0042b550
cmp byte [edi + 4], 0
jne 0x4292de
mov ecx, edi
call fcn.0042b550
cmp dword [esi], 0
jne 0x429336
cmp dword [edi], 0
jne 0x42933b
mov dword [esp + 0x24], ebx
mov al, byte [esp + 0xf]
test al, al
je 0x429305
test ebx, ebx
jne 0x429305
mov eax, dword [esp + 0x18]
inc eax
mov byte [eax - 1], 0x30
mov dword [esp + 0x18], eax
cmp byte [esi + 4], 0
jne 0x429312
mov ecx, esi
call fcn.0042b550
cmp byte [edi + 4], 0
jne 0x42931f
mov ecx, edi
call fcn.0042b550
cmp dword [esi], 0
jne 0x4293c7
cmp dword [edi], 0
je 0x429406
jmp 0x4293cc
cmp dword [edi], 0
jne 0x4292e8
cmp byte [esi + 4], 0
jne 0x429348
mov ecx, esi
call fcn.0042b550
mov cx, word [esp + 0x44]
lea eax, [esp + 0x44]
test cx, cx
je 0x429371
movzx edx, word [esi + 6]
movzx ecx, cx
lea ecx, [ecx]
cmp cx, dx
je 0x429371
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x429360
lea ecx, [esp + 0x44]
sub eax, ecx
sar eax, 1
cmp eax, 0xa
jae 0x4292e8
cmp ebx, 0x24
jl 0x42939c
inc dword [esp + 0x34]
mov ecx, esi
mov byte [esp + 0xf], 1
call fcn.0042b4d0
jmp 0x4292c4
test eax, eax
jne 0x4293a4
test ebx, ebx
je 0x4293b6
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.0042b4d0
jmp 0x4292c4
cmp dword [edi], 0
jne 0x429406
cmp byte [esi + 4], 0
jne 0x4293d9
mov ecx, esi
call fcn.0042b550
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
call dword [eax + 0xc]
movzx eax, ax
cmp word [esi + 6], ax
jne 0x429406
call fcn.004547ae
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.0042b4d0
test ebx, ebx
jne 0x429451
mov ebx, dword [esp + 0x34]
mov edi, edi
cmp byte [esi + 4], 0
jne 0x42941d
mov ecx, esi
call fcn.0042b550
cmp byte [edi + 4], 0
jne 0x42942a
mov ecx, edi
call fcn.0042b550
mov ecx, dword [esi]
test ecx, ecx
jne 0x429490
cmp dword [edi], ecx
jne 0x429495
mov dword [esp + 0x34], ebx
test ebx, ebx
mov ebx, dword [esp + 0x24]
jns 0x429451
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 0x4295ce
mov ecx, dword [esi]
test ecx, ecx
je 0x4295c4
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x42958b
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x42958b
call fcn.00409e10
push eax
call fcn.00408bf0
add esp, 4
jmp 0x429590
cmp dword [edi], 0
jne 0x429434
cmp byte [esi + 4], 0
jne 0x429502
test ecx, ecx
je 0x4294f8
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x4294bf
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4294bf
call fcn.00409e10
push eax
call fcn.00408bf0
add esp, 4
jmp 0x4294c4
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x10], eax
call fcn.00408c30
movzx eax, ax
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.00408c00
add esp, 8
test al, al
jne 0x4294f8
mov ax, word [esp + 0x10]
mov word [esi + 6], ax
jmp 0x4294fe
mov dword [esi], 0
mov byte [esi + 4], 1
mov ax, word [esi + 6]
cmp ax, word [esp + 0x44]
jne 0x429434
mov ecx, dword [esi]
dec ebx
mov byte [esp + 0xf], 1
test ecx, ecx
je 0x42957c
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x429546
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x429546
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.00408bf0
add esp, 4
jmp 0x42954b
mov eax, dword [ecx]
call dword [eax + 0x1c]
movzx eax, ax
mov dword [esp + 0x1c], eax
call fcn.00408c30
movzx eax, ax
mov dword [esp + 0x14], eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x18]
push eax
call fcn.00408c00
add esp, 8
test al, al
jne 0x42957c
mov byte [esi + 4], al
jmp 0x429410
mov dword [esi], 0
mov byte [esi + 4], 1
jmp 0x429410
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x10], eax
call fcn.00408c30
movzx eax, ax
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.00408c00
add esp, 8
test al, al
jne 0x4295c4
mov ax, word [esp + 0x10]
mov word [esi + 6], ax
jmp 0x4295ca
mov dword [esi], 0
mov byte [esi + 4], 1
cmp byte [edi + 4], 0
jne 0x42963d
mov ecx, dword [edi]
test ecx, ecx
je 0x429633
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x4295fa
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4295fa
call fcn.00409e10
push eax
call fcn.00408bf0
add esp, 4
jmp 0x4295ff
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x14], eax
call fcn.00408c30
movzx eax, ax
mov dword [esp + 0x3e], eax
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x42]
push eax
call fcn.00408c00
add esp, 8
test al, al
jne 0x429633
mov ax, word [esp + 0x14]
mov word [edi + 6], ax
jmp 0x429639
mov dword [edi], 0
mov byte [edi + 4], 1
mov ecx, dword [esi]
test ecx, ecx
jne 0x429692
cmp dword [edi], ecx
jne 0x429697
mov al, byte [esp + 0xf]
test al, al
je 0x429892
cmp byte [esi + 4], 0
jne 0x429815
mov ecx, dword [esi]
test ecx, ecx
je 0x42980b
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x4297d2
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4297d2
call fcn.00409e10
push eax
call fcn.00408bf0
add esp, 4
jmp 0x4297d7
cmp dword [edi], 0
jne 0x429647
cmp byte [esi + 4], 0
jne 0x429704
test ecx, ecx
je 0x4296fa
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x4296c1
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4296c1
call fcn.00409e10
push eax
call fcn.00408bf0
add esp, 4
jmp 0x4296c6
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x24], eax
call fcn.00408c30
movzx eax, ax
mov dword [esp + 0x30], eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x34]
push eax
call fcn.00408c00
add esp, 8
test al, al
jne 0x4296fa
mov ax, word [esp + 0x24]
mov word [esi + 6], ax
jmp 0x429700
mov dword [esi], 0
mov byte [esi + 4], 1
mov cx, word [esp + 0x44]
lea eax, [esp + 0x44]
test cx, cx
je 0x429731
movzx edx, word [esi + 6]
movzx ecx, cx
lea esp, [esp]
cmp cx, dx
je 0x429731
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x429720
lea ecx, [esp + 0x44]
sub eax, ecx
sar eax, 1
cmp eax, 0xa
jae 0x429647
cmp ebx, 0x24
jge 0x429759
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 0x4297c3
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x42978d
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x42978d
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.00408bf0
add esp, 4
jmp 0x429792
mov eax, dword [ecx]
call dword [eax + 0x1c]
movzx eax, ax
mov dword [esp + 0x1c], eax
call fcn.00408c30
movzx eax, ax
mov dword [esp + 0x20], eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00408c00
add esp, 8
test al, al
jne 0x4297c3
mov byte [esi + 4], al
jmp 0x429451
mov dword [esi], 0
mov byte [esi + 4], 1
jmp 0x429451
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x10], eax
call fcn.00408c30
movzx eax, ax
mov dword [esp + 0x20], eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00408c00
add esp, 8
test al, al
jne 0x42980b
mov ax, word [esp + 0x10]
mov word [esi + 6], ax
jmp 0x429811
mov dword [esi], 0
mov byte [esi + 4], 1
cmp byte [edi + 4], 0
jne 0x429884
mov ecx, dword [edi]
test ecx, ecx
je 0x42987a
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x429841
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x429841
call fcn.00409e10
push eax
call fcn.00408bf0
add esp, 4
jmp 0x429846
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x14], eax
call fcn.00408c30
movzx eax, ax
mov dword [esp + 0x30], eax
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x34]
push eax
call fcn.00408c00
add esp, 8
test al, al
jne 0x42987a
mov ax, word [esp + 0x14]
mov word [edi + 6], ax
jmp 0x429880
mov dword [edi], 0
mov byte [edi + 4], 1
mov ecx, dword [esi]
test ecx, ecx
jne 0x4298a9
cmp dword [edi], ecx
jne 0x4298ae
mov al, byte [esp + 0xf]
cmp byte [esp + 0x2b], 0
jne 0x4298a1
test al, al
jne 0x42a046
mov ecx, dword [ebp + 0xc]
jmp 0x42a04a
cmp dword [edi], 0
jne 0x42988e
cmp byte [esi + 4], 0
jne 0x42991b
test ecx, ecx
je 0x429911
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x4298d8
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x4298d8
call fcn.00409e10
push eax
call fcn.00408bf0
add esp, 4
jmp 0x4298dd
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x10], eax
call fcn.00408c30
movzx eax, ax
mov dword [esp + 0x20], eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00408c00
add esp, 8
test al, al
jne 0x429911
mov ax, word [esp + 0x10]
mov word [esi + 6], ax
jmp 0x429917
mov dword [esi], 0
mov byte [esi + 4], 1
mov ax, word [esi + 6]
cmp ax, word [esp + 0x5e]
je 0x4299a8
cmp byte [esi + 4], 0
jne 0x429999
mov ecx, dword [esi]
test ecx, ecx
je 0x42998f
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x429956
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x429956
call fcn.00409e10
push eax
call fcn.00408bf0
add esp, 4
jmp 0x42995b
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x10], eax
call fcn.00408c30
movzx eax, ax
mov dword [esp + 0x20], eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00408c00
add esp, 8
test al, al
jne 0x42998f
mov ax, word [esp + 0x10]
mov word [esi + 6], ax
jmp 0x429995
mov dword [esi], 0
mov byte [esi + 4], 1
mov ax, word [esi + 6]
cmp ax, word [esp + 0x5c]
jne 0x42988e
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 0x429a17
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x4299e4
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x4299e4
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.00408bf0
add esp, 4
jmp 0x4299e9
mov eax, dword [ecx]
call dword [eax + 0x1c]
movzx eax, ax
mov dword [esp + 0x1c], eax
call fcn.00408c30
movzx eax, ax
mov dword [esp + 0x20], eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00408c00
add esp, 8
test al, al
jne 0x429a17
mov byte [esi + 4], al
jmp 0x429a21
mov dword [esi], 0
mov byte [esi + 4], 1
xor ebx, ebx
cmp byte [esi + 4], bl
jne 0x429a8b
mov ecx, dword [esi]
test ecx, ecx
je 0x429a85
mov eax, dword [ecx + 0x1c]
cmp dword [eax], ebx
je 0x429a4c
mov eax, dword [ecx + 0x2c]
cmp dword [eax], ebx
jle 0x429a4c
call fcn.00409e10
push eax
call fcn.00408bf0
add esp, 4
jmp 0x429a51
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x10], eax
call fcn.00408c30
movzx eax, ax
mov dword [esp + 0x20], eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00408c00
add esp, 8
test al, al
jne 0x429a85
mov ax, word [esp + 0x10]
mov word [esi + 6], ax
jmp 0x429a87
mov dword [esi], ebx
mov byte [esi + 4], 1
cmp byte [edi + 4], bl
jne 0x429af3
mov ecx, dword [edi]
test ecx, ecx
je 0x429aed
mov eax, dword [ecx + 0x1c]
cmp dword [eax], ebx
je 0x429ab4
mov eax, dword [ecx + 0x2c]
cmp dword [eax], ebx
jle 0x429ab4
call fcn.00409e10
push eax
call fcn.00408bf0
add esp, 4
jmp 0x429ab9
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x14], eax
call fcn.00408c30
movzx eax, ax
mov dword [esp + 0x30], eax
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x34]
push eax
call fcn.00408c00
add esp, 8
test al, al
jne 0x429aed
mov ax, word [esp + 0x14]
mov word [edi + 6], ax
jmp 0x429aef
mov dword [edi], ebx
mov byte [edi + 4], 1
mov ecx, dword [esi]
test ecx, ecx
jne 0x429b03
cmp dword [edi], ebx
je 0x429c13
jmp 0x429b0b
cmp dword [edi], ebx
jne 0x429c13
cmp byte [esi + 4], bl
jne 0x429b71
test ecx, ecx
je 0x429b6b
mov eax, dword [ecx + 0x1c]
cmp dword [eax], ebx
je 0x429b32
mov eax, dword [ecx + 0x2c]
cmp dword [eax], ebx
jle 0x429b32
call fcn.00409e10
push eax
call fcn.00408bf0
add esp, 4
jmp 0x429b37
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x10], eax
call fcn.00408c30
movzx eax, ax
mov dword [esp + 0x20], eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00408c00
add esp, 8
test al, al
jne 0x429b6b
mov ax, word [esp + 0x10]
mov word [esi + 6], ax
jmp 0x429b6d
mov dword [esi], ebx
mov byte [esi + 4], 1
mov ax, word [esi + 6]
cmp ax, word [esp + 0x5a]
jne 0x429bba
mov eax, dword [esp + 0x18]
mov byte [eax], 0x2b
mov ecx, dword [esi]
inc eax
mov dword [esp + 0x18], eax
test ecx, ecx
je 0x429c0d
mov eax, dword [ecx + 0x1c]
cmp dword [eax], ebx
je 0x429bda
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x429bda
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.00408bf0
add esp, 4
jmp 0x429bdf
cmp byte [esi + 4], bl
jne 0x429bc6
mov ecx, esi
call fcn.0042b550
mov ax, word [esi + 6]
cmp ax, word [esp + 0x58]
jne 0x429c13
mov eax, dword [esp + 0x18]
mov byte [eax], 0x2d
jmp 0x429b83
mov eax, dword [ecx]
call dword [eax + 0x1c]
movzx eax, ax
mov dword [esp + 0x1c], eax
call fcn.00408c30
movzx eax, ax
mov dword [esp + 0x20], eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00408c00
add esp, 8
test al, al
jne 0x429c0d
mov byte [esi + 4], bl
jmp 0x429c13
mov dword [esi], ebx
mov byte [esi + 4], 1
cmp byte [esi + 4], 0
jne 0x429c82
mov ecx, dword [esi]
test ecx, ecx
je 0x429c78
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x429c3f
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x429c3f
call fcn.00409e10
push eax
call fcn.00408bf0
add esp, 4
jmp 0x429c44
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x10], eax
call fcn.00408c30
movzx eax, ax
mov dword [esp + 0x20], eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00408c00
add esp, 8
test al, al
jne 0x429c78
mov ax, word [esp + 0x10]
mov word [esi + 6], ax
jmp 0x429c7e
mov dword [esi], 0
mov byte [esi + 4], 1
cmp byte [edi + 4], 0
jne 0x429cf1
mov ecx, dword [edi]
test ecx, ecx
je 0x429ce7
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x429cae
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x429cae
call fcn.00409e10
push eax
call fcn.00408bf0
add esp, 4
jmp 0x429cb3
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x14], eax
call fcn.00408c30
movzx eax, ax
mov dword [esp + 0x30], eax
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x34]
push eax
call fcn.00408c00
add esp, 8
test al, al
jne 0x429ce7
mov ax, word [esp + 0x14]
mov word [edi + 6], ax
jmp 0x429ced
mov dword [edi], 0
mov byte [edi + 4], 1
mov ecx, dword [esi]
test ecx, ecx
jne 0x429d54
cmp dword [edi], ecx
jne 0x429d59
mov byte [esp + 0xf], bl
test bl, bl
mov ebx, 0
je 0x429d15
mov eax, dword [esp + 0x18]
inc eax
mov byte [eax - 1], 0x30
mov dword [esp + 0x18], eax
cmp byte [esi + 4], 0
jne 0x429e8a
mov ecx, dword [esi]
test ecx, ecx
je 0x429e80
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x429e47
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x429e47
call fcn.00409e10
push eax
call fcn.00408bf0
add esp, 4
jmp 0x429e4c
cmp dword [edi], 0
jne 0x429cfb
cmp byte [esi + 4], 0
jne 0x429dc6
test ecx, ecx
je 0x429dbc
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x429d83
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x429d83
call fcn.00409e10
push eax
call fcn.00408bf0
add esp, 4
jmp 0x429d88
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x24], eax
call fcn.00408c30
movzx eax, ax
mov dword [esp + 0x3e], eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x42]
push eax
call fcn.00408c00
add esp, 8
test al, al
jne 0x429dbc
mov ax, word [esp + 0x24]
mov word [esi + 6], ax
jmp 0x429dc2
mov dword [esi], 0
mov byte [esi + 4], 1
mov ax, word [esi + 6]
cmp ax, word [esp + 0x44]
jne 0x429cfb
mov ecx, dword [esi]
mov bl, 1
test ecx, ecx
je 0x429e3c
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x429e06
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x429e06
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.00408bf0
add esp, 4
jmp 0x429e0b
mov eax, dword [ecx]
call dword [eax + 0x1c]
movzx eax, ax
mov dword [esp + 0x1c], eax
call fcn.00408c30
movzx eax, ax
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.00408c00
add esp, 8
test al, al
jne 0x429e3c
mov byte [esi + 4], al
jmp 0x429c13
mov dword [esi], 0
jmp 0x429c0f
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x10], eax
call fcn.00408c30
movzx eax, ax
mov dword [esp + 0x20], eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00408c00
add esp, 8
test al, al
jne 0x429e80
mov ax, word [esp + 0x10]
mov word [esi + 6], ax
jmp 0x429e86
mov dword [esi], 0
mov byte [esi + 4], 1
cmp byte [edi + 4], 0
jne 0x429ef9
mov ecx, dword [edi]
test ecx, ecx
je 0x429eef
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x429eb6
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x429eb6
call fcn.00409e10
push eax
call fcn.00408bf0
add esp, 4
jmp 0x429ebb
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x14], eax
call fcn.00408c30
movzx eax, ax
mov dword [esp + 0x30], eax
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x34]
push eax
call fcn.00408c00
add esp, 8
test al, al
jne 0x429eef
mov ax, word [esp + 0x14]
mov word [edi + 6], ax
jmp 0x429ef5
mov dword [edi], 0
mov byte [edi + 4], 1
mov ecx, dword [esi]
test ecx, ecx
jne 0x429f09
cmp dword [edi], ecx
je 0x42988e
jmp 0x429f12
cmp dword [edi], 0
jne 0x42988e
cmp byte [esi + 4], 0
jne 0x429f7f
test ecx, ecx
je 0x429f75
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x429f3c
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x429f3c
call fcn.00409e10
push eax
call fcn.00408bf0
add esp, 4
jmp 0x429f41
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
mov dword [esp + 0x24], eax
call fcn.00408c30
movzx eax, ax
mov dword [esp + 0x3e], eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x42]
push eax
call fcn.00408c00
add esp, 8
test al, al
jne 0x429f75
mov ax, word [esp + 0x24]
mov word [esi + 6], ax
jmp 0x429f7b
mov dword [esi], 0
mov byte [esi + 4], 1
mov cx, word [esp + 0x44]
lea eax, [esp + 0x44]
test cx, cx
je 0x429fa5
movzx edx, word [esi + 6]
movzx ecx, cx
cmp cx, dx
je 0x429fa5
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x429f94
lea ecx, [esp + 0x44]
sub eax, ecx
sar eax, 1
cmp eax, 0xa
jae 0x42988e
cmp ebx, 8
jge 0x429fcd
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 0x42a037
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x42a001
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x42a001
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.00408bf0
add esp, 4
jmp 0x42a006
mov eax, dword [ecx]
call dword [eax + 0x1c]
movzx eax, ax
mov dword [esp + 0x1c], eax
call fcn.00408c30
movzx eax, ax
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.00408c00
add esp, 8
test al, al
jne 0x42a037
mov byte [esi + 4], al
jmp 0x429d15
mov dword [esi], 0
mov byte [esi + 4], 1
jmp 0x429d15
mov ecx, dword [esp + 0x18]
mov byte [ecx], 0
lea ecx, [esp + 0x78]
call fcn.004033e0
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