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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x98
mov eax, dword [0x559940]
xor eax, esp
mov dword [esp + 0x94], eax
mov eax, ecx
mov dword [esp], edx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x24], ecx
mov ecx, dword [ebp + 0x28]
mov dword [esp + 0x64], ecx
xor ecx, ecx
push esi
mov esi, dword [eax + 8]
mov dword [esp + 0x60], ecx
mov byte [esp + 0x47], cl
mov ecx, dword [eax]
mov dword [esp + 8], eax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x50], ecx
mov dword [esp + 0x38], esi
push edi
mov edi, dword [ebp + 0x2c]
mov dword [esp + 0x18], edi
test esi, esi
jne 0x4656a5
cmp dword [eax + 0x78], esi
jne 0x465694
test byte [ecx + 0x44], 8
jne 0x465694
mov byte [eax + 0x17], 1
mov ecx, eax
call fcn.00429580
mov edx, dword [esp + 8]
mov esi, eax
mov dword [esp + 0x3c], esi
test byte [edx + 0x24], 0x20
movsx eax, word [edx + 0x2a]
mov dword [esp + 0x40], eax
jne 0x4656c5
mov dword [esp + 0x34], 0
mov dword [esp + 0x58], 1
jmp 0x4656f0
mov ecx, dword [edx + 8]
mov dword [esp + 0x34], ecx
test ecx, ecx
je 0x4656e8
mov eax, dword [ecx + 0x38]
and al, 3
cmp al, 2
je 0x4656e0
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x4656d0
mov eax, dword [esp + 0x40]
mov dword [esp + 0x34], ecx
movzx ecx, word [ecx + 0x32]
mov dword [esp + 0x58], ecx
test eax, eax
jle 0x4659bb
mov ecx, dword [ebp + 0x14]
xor edi, edi
mov eax, dword [esp + 0x18]
mov dword [esp + 0x28], eax
mov eax, ecx
not eax
mov dword [esp + 0x20], edi
lea edx, [ecx + 1]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x1c], edx
nop dword [eax + eax]
lea ecx, [eax + edx]
mov eax, dword [esp + 8]
movsx eax, word [eax + 0x28]
cmp ecx, eax
je 0x46598c
cmp dword [esp + 0x18], 0
je 0x465747
mov eax, dword [esp + 0x28]
cmp dword [eax], 0
jl 0x46598c
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
lea ecx, [eax + edi]
mov al, byte [ecx + 0xc]
movzx edi, al
mov dword [esp + 0x44], edi
test al, al
je 0x46598c
mov ah, byte [ebp + 0x20]
cmp ah, 0xa
jne 0x4657d3
cmp al, ah
jne 0x4657d3
mov edi, 2
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x78]
test eax, eax
cmovne ecx, eax
mov byte [ecx + 0x15], 1
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x20]
mov eax, dword [edx + 4]
push dword [ecx + eax]
push dword [edx]
push str._s._s
push dword [esp + 0x60]
call fcn.00407a80
mov ecx, dword [esi + 0x88]
add esp, 0x10
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x465803
push edx
push edi
push 0x513
mov edx, 0x41
mov ecx, esi
call fcn.00429830
add esp, 0xc
jmp 0x465831
cmp ah, 0xa
movzx edi, ah
cmove edi, dword [esp + 0x44]
cmp edi, 5
jne 0x4657f0
cmp dword [ecx + 4], 0
jne 0x4657f0
mov edi, 2
jmp case.0x4657fc.2
lea eax, [edi - 1]
cmp eax, 3
ja case.default.0x4657fc
jmp dword [eax*4 + 0x466ca0]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x41
mov dword [eax + ecx*4 + 4], 0x513
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi]
mov edx, dword [esp + 0x24]
cmp byte [ecx + 0x49], 0
je 0x46584d
push edx
mov edx, 0xfffffff9
call fcn.0042a2b0
add esp, 4
jmp 0x465862
mov eax, dword [esi + 0x88]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
mov byte [eax + ecx*4 - 0x13], 0xf9
mov dword [eax + ecx*4 - 4], edx
mov eax, dword [esi + 0x88]
test eax, eax
jle 0x465988
lea ecx, [eax + eax*4]
mov edx, 1
mov eax, dword [esi + 0x58]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x465988
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x4658ad
push 0
push dword [ebp + 0x24]
mov ecx, esi
push edx
mov edx, 0x32
call fcn.00429830
add esp, 0xc
jmp 0x465988
mov edi, dword [ebp + 0x24]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0x32
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x46598c
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 0x88]
cmp dword [eax + 0x30], edi
jg 0x46590d
push 0
push 0
push edx
mov edx, 0x33
mov ecx, esi
call fcn.00429830
mov edx, dword [esp + 0x28]
add esp, 0xc
mov edi, eax
jmp 0x465943
lea eax, [edi + 1]
mov dword [esi + 0x88], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x58]
mov esi, dword [esp + 0x3c]
mov dword [eax + ecx*4], 0x33
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x20]
push edx
mov edx, dword [eax + 4]
mov edx, dword [ecx + edx + 4]
mov ecx, dword [esp + 0x10]
call fcn.004483e0
mov eax, dword [esi]
add esp, 4
mov edx, dword [esi + 0x88]
cmp byte [eax + 0x49], 0
je 0x465974
mov eax, 0x5600c0
jmp 0x465985
test edi, edi
lea eax, [edx - 1]
cmovns eax, edi
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
inc edx
add dword [esp + 0x20], 0x10
add eax, edx
add dword [esp + 0x28], 4
cmp eax, dword [esp + 0x40]
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x1c], edx
jl 0x465720
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 8]
mov edx, dword [edx + 0x18]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], 2
test edx, edx
je 0x465c43
mov eax, dword [esp + 0x54]
test dword [eax + 0x1c], 0x200
jne 0x465c43
mov ecx, dword [esp + 0xc]
mov eax, dword [ebp + 0x14]
not eax
mov dword [ecx + 0x38], eax
mov al, byte [ebp + 0x20]
cmp al, 0xa
je 0x4659ff
movzx eax, al
mov dword [esp + 0x38], eax
jmp 0x465a07
mov dword [esp + 0x38], 2
xor ecx, ecx
mov dword [esp + 0x20], ecx
cmp dword [edx], ecx
jle 0x465c38
lea eax, [edx + 8]
mov dword [esp + 0x4c], 3
mov dword [esp + 0x14], eax
mov eax, dword [eax - 4]
mov dword [esp + 0x40], eax
test edi, edi
je 0x465a88
mov dword [esp + 0x88], 0
xorps xmm0, xmm0
movaps xmmword [esp + 0x70], xmm0
movq qword [esp + 0x80], xmm0
mov dword [esp + 0x74], 0x4655e0
mov dword [esp + 0x88], edi
test eax, eax
je 0x465a71
mov edx, eax
lea ecx, [esp + 0x70]
call fcn.0043d910
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
cmp byte [ebp + 0x1c], 0
mov al, byte [esp + 0x84]
jne 0x465a80
and al, 0xfd
test al, al
je 0x465c20
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x44], ecx
mov edi, dword [ecx + 0x44]
lea eax, [edi + 1]
mov dword [ecx + 0x44], eax
add ecx, 0x48
lea eax, [edi - 1]
mov dword [esp + 0x24], ecx
test edi, eax
jne 0x465ac6
mov edx, dword [ecx]
lea eax, [edi*8 + 4]
mov ecx, dword [esp + 0x44]
push 0
push eax
mov ecx, dword [ecx]
call fcn.00405ab0
mov ecx, dword [esp + 0x2c]
add esp, 8
mov dword [ecx], eax
mov eax, dword [ecx]
test eax, eax
je 0x465ad3
mov dword [eax + edi*4], 0xffffffff
push 0x10
not edi
push edi
push dword [esp + 0x48]
push dword [esp + 0x18]
call fcn.00448870
mov edx, dword [esp + 0x48]
add esp, 0x10
cmp edx, 4
jne 0x465b54
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x465b1a
push 0
push dword [ebp + 0x24]
mov edx, 0xd
mov ecx, esi
push 0
call fcn.00429830
add esp, 0xc
jmp 0x465bf9
mov edx, dword [ebp + 0x24]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0xd
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x465bf9
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx]
mov dword [esp + 0x24], ecx
test ecx, ecx
jne 0x465b6c
mov eax, dword [esp + 8]
mov eax, dword [eax]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0xc]
cmp edx, 5
mov eax, 2
cmove edx, eax
mov dword [esp + 0x38], edx
mov eax, dword [ecx + 8]
mov dword [esp + 0x28], eax
test eax, eax
jne 0x465bac
cmp dword [ecx + 0x78], eax
jne 0x465b9b
mov eax, dword [ecx]
test byte [eax + 0x44], 8
jne 0x465b9b
mov byte [ecx + 0x17], 1
call fcn.00429580
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x28], eax
cmp edx, 2
jne 0x465bbd
mov eax, dword [ecx + 0x78]
test eax, eax
cmovne ecx, eax
mov byte [ecx + 0x15], 1
mov ecx, dword [esp + 0x28]
push 0
push dword [esp + 0x28]
push 0
push edx
push 0x113
mov edx, 0x42
call fcn.00429b70
mov eax, dword [esp + 0x3c]
add esp, 0x14
mov ecx, dword [eax + 0x88]
test ecx, ecx
jle 0x465bf9
mov eax, dword [eax + 0x58]
lea ecx, [ecx + ecx*4]
mov edx, dword [esp + 0x4c]
mov word [eax + ecx*4 - 0x12], dx
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x1c]
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x465c18
lea eax, [edi*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x88]
mov dword [ecx], eax
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
inc ecx
add eax, 0x18
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], eax
cmp ecx, dword [edx]
jl 0x465a24
mov eax, dword [esp + 0xc]
mov dword [eax + 0x38], 0
cmp byte [ebp + 0x1c], 0
je 0x466058
cmp dword [esp + 0x34], 0
jne 0x466058
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + 0x44]
lea edi, [ecx + 0x48]
mov dword [esp + 0x20], edx
lea eax, [edx + 1]
mov dword [ecx + 0x44], eax
lea eax, [edx - 1]
test edx, eax
jne 0x465c8e
mov ecx, dword [ecx]
lea eax, [edx*8 + 4]
mov edx, dword [edi]
push 0
push eax
call fcn.00405ab0
mov edx, dword [esp + 0x28]
add esp, 8
mov dword [edi], eax
mov eax, dword [edi]
test eax, eax
je 0x465c9b
mov dword [eax + edx*4], 0xffffffff
mov eax, dword [esp + 8]
not edx
mov cl, byte [ebp + 0x20]
mov dword [esp + 0x20], edx
movzx edi, byte [eax + 0x30]
cmp cl, 0xa
je 0x465cb6
movzx edi, cl
jmp 0x465cbe
cmp edi, 0xa
cmove edi, dword [esp + 0x10]
cmp dword [ebp + 0x18], 0
je 0x465d3f
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x465cea
push dword [ebp + 0x18]
mov ecx, esi
push edx
push dword [ebp + 0x14]
mov edx, 0x35
call fcn.00429830
add esp, 0xc
jmp 0x465d1e
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov esi, dword [ebp + 0x14]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [ebp + 0x18]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x3c]
mov dword [eax + ecx*4], 0x35
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x88]
test eax, eax
jle 0x465d38
lea ecx, [eax + eax*4]
mov edx, 0x90
mov eax, dword [esi + 0x58]
mov word [eax + ecx*4 - 0x12], dx
mov cl, byte [ebp + 0x20]
mov eax, dword [esp + 8]
cmp edi, 5
jne 0x465dd1
cmp cl, 5
je 0x465dd1
mov eax, dword [eax + 8]
test eax, eax
je 0x465dd1
mov cl, byte [eax + 0x36]
cmp cl, 4
je 0x465d6e
cmp cl, 3
je 0x465d6e
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x465d58
jmp 0x465dd1
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x88]
mov dword [esp + 0x5c], edx
cmp dword [eax + 0x30], edx
jg 0x465d9b
push 0
push 0
push 0
mov edx, 0xd
mov ecx, esi
call fcn.00429830
add esp, 0xc
mov dword [esp + 0x5c], eax
jmp 0x465dd1
lea eax, [edx + 1]
mov dword [esi + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0xd
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x465dfc
push dword [ebp + 0x14]
mov edx, dword [esp + 0x24]
mov ecx, esi
push edx
mov edx, dword [ebp + 0xc]
push edx
mov edx, 0x20
call fcn.00429830
add esp, 0xc
jmp 0x465e30
mov edx, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [ebp + 0x14]
mov dword [eax + ecx*4], 0x20
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
lea eax, [edi - 1]
cmp eax, 4
ja case.default.0x465e3c
jmp dword [eax*4 + 0x466cb0]
mov eax, dword [esp + 0x54]
xor edi, edi
test dword [eax + 0x1c], 0x2000
je 0x465e98
mov ecx, dword [esp + 0xc]
xor edx, edx
mov eax, dword [ecx]
test dword [eax + 0x1c], 0x40000
je 0x465e6e
mov edx, dword [esp + 8]
call fcn.0047f770
mov edx, eax
mov ecx, edx
test edx, edx
je 0x465e87
cmp byte [ecx + 8], 0x6d
jne 0x465e80
movzx eax, byte [ecx + 9]
or edi, eax
mov ecx, dword [ecx + 0x20]
test ecx, ecx
jne 0x465e74
xor eax, eax
test edi, edi
cmovne eax, edx
mov dword [esp + 0x24], eax
mov edi, eax
test eax, eax
jne 0x465eec
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0xc]
push 0
push 0
call fcn.004619c0
add esp, 8
test eax, eax
jne 0x465eec
mov edx, dword [esp + 8]
cmp dword [edx + 8], eax
je 0x465f20
mov edi, dword [esp + 0xc]
mov ecx, edi
push 0xffffffffffffffff
push 0
push dword [ebp + 0x10]
mov eax, dword [edi + 0x78]
test eax, eax
push dword [ebp + 0xc]
cmovne ecx, eax
mov byte [ecx + 0x14], 1
mov ecx, edi
call fcn.0045b570
add esp, 0x10
mov dword [esp + 0x60], 1
jmp 0x465f9e
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
push 0xffffffffffffffff
push 1
mov eax, dword [ecx + 0x78]
test eax, eax
push 5
push 0
push 1
push dword [ebp + 0x14]
cmovne ecx, eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
mov byte [ecx + 0x14], 1
mov ecx, dword [esp + 0x2c]
push edi
call fcn.0045aff0
add esp, 0x24
mov dword [esp + 0x60], 1
jmp 0x465f9e
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x465f50
push 0
push dword [ebp + 0x24]
mov edx, 0xd
mov ecx, esi
push 0
call fcn.00429830
add esp, 0xc
jmp 0x465f9e
mov edx, dword [ebp + 0x24]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0xd
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x465f9e
mov edi, 2
push dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov edx, edi
call fcn.00458210
add esp, 4
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x465fbd
mov eax, dword [esp + 0x20]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x88]
mov dword [ecx], eax
cmp dword [esp + 0x5c], 0
je 0x466058
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 0x88]
mov dword [esp + 0x64], edi
cmp dword [eax + 0x30], edi
jg 0x465ff5
push 0
push 0
push 0
mov edx, 0xd
mov ecx, esi
call fcn.00429830
add esp, 0xc
mov dword [esp + 0x64], eax
jmp 0x46602b
lea eax, [edi + 1]
mov dword [esi + 0x88], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0xd
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
mov edx, dword [esi + 0x88]
cmp byte [eax + 0x49], 0
je 0x466040
mov eax, 0x5600c0
jmp 0x466055
mov ecx, dword [esp + 0x5c]
lea eax, [edx - 1]
test ecx, ecx
cmovns eax, ecx
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov edi, dword [esp + 8]
mov dword [esp + 0x14], 0
mov eax, dword [edi + 8]
mov dword [esp + 0x10], eax
test eax, eax
je 0x466bee
mov edx, dword [esp + 0x2c]
xor ecx, ecx
nop dword [eax]
cmp dword [edx + ecx*4], 0
je 0x466bda
cmp byte [esp + 0x4b], 0
jne 0x4660a7
mov eax, dword [ebp + 0x14]
mov edx, edi
inc eax
mov ecx, esi
push eax
call fcn.00462fb0
add esp, 4
mov byte [esp + 0x4b], 1
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + 0x44]
lea edi, [ecx + 0x48]
mov dword [esp + 0x1c], edx
lea eax, [edx + 1]
mov dword [ecx + 0x44], eax
lea eax, [edx - 1]
test edx, eax
jne 0x4660dd
mov ecx, dword [ecx]
lea eax, [edx*8 + 4]
mov edx, dword [edi]
push 0
push eax
call fcn.00405ab0
mov edx, dword [esp + 0x24]
add esp, 8
mov dword [edi], eax
mov eax, dword [edi]
test eax, eax
je 0x4660ea
mov dword [eax + edx*4], 0xffffffff
mov edi, dword [esp + 0x10]
not edx
mov dword [esp + 0x1c], edx
cmp dword [edi + 0x24], 0
je 0x4661d4
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + eax*4]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x46612d
push 0
push edx
push 0
mov edx, 0x46
mov ecx, esi
call fcn.00429830
add esp, 0xc
jmp 0x466163
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov esi, dword [esp + 0x3c]
mov dword [eax + ecx*4], 0x46
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0xc]
mov eax, dword [ebp + 0x14]
not eax
mov dword [esp + 0x40], eax
mov dword [ecx + 0x38], eax
mov edx, dword [edi + 0x24]
mov eax, dword [ecx]
mov dword [esp + 0x24], eax
test edx, edx
je 0x46619a
push 0
push 0
mov ecx, eax
call fcn.004416a0
mov ecx, dword [esp + 0x14]
mov edi, eax
mov eax, dword [esp + 0x2c]
add esp, 8
jmp 0x46619c
xor edi, edi
cmp byte [eax + 0x49], 0
jne 0x4661b6
push 0x10
push dword [esp + 0x20]
push edi
push ecx
call fcn.00448ea0
mov eax, dword [esp + 0x34]
add esp, 0x10
test edi, edi
je 0x4661c3
mov edx, edi
mov ecx, eax
call fcn.00441410
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
mov dword [eax + 0x38], 0
jmp 0x4661dd
mov eax, dword [ebp + 0x14]
not eax
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x2c]
xor edx, edx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x4c], edx
mov eax, dword [ecx + eax*4]
inc eax
mov dword [esp + 0x20], eax
movzx eax, word [edi + 0x34]
xor edi, edi
mov ecx, eax
cmp di, ax
jae 0x46633a
mov eax, dword [esp + 0x20]
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
movsx edx, word [eax + edx*2]
cmp edx, 0xfffffffe
jne 0x466292
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x40]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x28]
mov edx, dword [eax + edi + 4]
mov eax, dword [ecx]
mov dword [esp + 0x24], eax
test edx, edx
je 0x466256
push 0
push 0
mov ecx, eax
call fcn.004416a0
mov edi, eax
add esp, 8
mov eax, dword [esp + 0x24]
jmp 0x466258
xor edi, edi
cmp byte [eax + 0x49], 0
jne 0x466275
mov ecx, dword [esp + 0x18]
mov edx, edi
push ecx
mov ecx, dword [esp + 0x10]
call fcn.004483e0
mov eax, dword [esp + 0x28]
add esp, 4
test edi, edi
je 0x466282
mov edx, edi
mov ecx, eax
call fcn.00441410
mov eax, dword [esp + 0xc]
mov dword [eax + 0x38], 0
jmp 0x466312
cmp edx, 0xffffffff
je 0x4662ab
mov eax, dword [esp + 8]
movsx eax, word [eax + 0x28]
cmp edx, eax
je 0x4662ab
mov edi, dword [ebp + 0x14]
inc edi
add edi, edx
jmp 0x4662ae
mov edi, dword [ebp + 0x14]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
sar edx, 0x1f
and edx, 1
add edx, 0x4c
cmp dword [eax + 0x30], ecx
jg 0x4662d9
mov ecx, dword [esp + 0x18]
push 0
push ecx
push edi
mov ecx, esi
call fcn.00429830
add esp, 0xc
jmp 0x466312
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov byte [eax + ecx*4], dl
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 0xc], 0
lea eax, [eax + ecx*4]
xor ecx, ecx
mov dword [eax + 0x10], 0
mov word [eax + 2], cx
mov ecx, dword [esp + 0x18]
mov dword [eax + 8], ecx
mov byte [eax + 1], 0
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x4c]
mov edi, dword [esp + 0x28]
inc edx
inc dword [esp + 0x18]
add edi, 0x18
movzx ecx, word [eax + 0x34]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x28], edi
cmp edx, ecx
jl 0x466210
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
movzx edi, cx
mov ecx, dword [esi + 0x88]
mov edx, dword [edx + eax*4]
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x46636d
push edx
push edi
push dword [esp + 0x28]
mov edx, 0x63
mov ecx, esi
call fcn.00429830
add esp, 0xc
jmp 0x46639f
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov esi, dword [esp + 0x20]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x3c]
mov dword [eax + ecx*4], 0x63
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
cmp dword [ebp + 0x18], 0
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x34]
je 0x4663e7
cmp edx, ecx
jne 0x4663e7
cmp byte [ebp + 0x1c], 0
jne 0x4663e7
mov edi, dword [esp + 8]
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x2c]
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x466bd2
mov eax, dword [esp + 0x1c]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x88]
mov dword [ecx], eax
jmp 0x466bd2
movzx eax, byte [ecx + 0x36]
test eax, eax
je 0x4663b7
cmp byte [ebp + 0x20], 0xa
je 0x4663fb
movzx eax, byte [ebp + 0x20]
jmp 0x466406
cmp eax, 0xa
mov edi, 2
cmove eax, edi
cmp dword [esp + 0x14], 0
mov dword [esp + 0x24], eax
jne 0x4664b6
cmp dword [ecx + 0x14], 0
jne 0x4664b6
cmp edx, ecx
jne 0x4664b6
cmp eax, 5
jne 0x4664b6
mov eax, dword [esp + 0x54]
test dword [eax + 0x1c], 0x2000
je 0x466483
mov ecx, dword [esp + 0xc]
xor edi, edi
xor edx, edx
mov eax, dword [ecx]
test dword [eax + 0x1c], 0x40000
je 0x46645b
mov edx, dword [esp + 8]
call fcn.0047f770
mov edx, eax
mov ecx, edx
test edx, edx
je 0x46647f
cmp byte [ecx + 8], 0x6d
jne 0x46646d
movzx eax, byte [ecx + 9]
or edi, eax
mov ecx, dword [ecx + 0x20]
test ecx, ecx
jne 0x466461
xor eax, eax
test edi, edi
cmovne eax, edx
test eax, eax
jne 0x4664b6
mov eax, dword [esp + 0x54]
test dword [eax + 0x1c], 0x4000
mov edi, dword [esp + 8]
je 0x4663bb
cmp dword [edi + 0x10], 0
jne 0x4664b6
mov ecx, dword [edi + 0x48]
mov edx, dword [edi]
add ecx, 0x38
push 0
call fcn.00409f50
add esp, 4
cmp dword [eax + 8], 0
je 0x4663bb
mov eax, dword [esp + 0x10]
mov edx, dword [esi + 0x88]
mov dword [esp + 0x44], edx
movzx edi, word [eax + 0x32]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x40], edi
cmp dword [eax + 0x30], edx
jg 0x4664f7
push dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov edx, 0x1c
push dword [esp + 0x20]
add eax, dword [ebp + 0x10]
mov ecx, esi
push eax
call fcn.00429830
add esp, 0xc
mov edx, eax
jmp 0x46653c
mov edi, dword [esp + 0x40]
lea eax, [edx + 1]
mov dword [esi + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x58]
mov esi, dword [esp + 0x14]
add esi, dword [ebp + 0x10]
mov edx, dword [esp + 0x44]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x20]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0x3c]
mov dword [eax + ecx*4], 0x1c
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
jne 0x466553
mov eax, dword [esi + 0x58]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edi
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x34]
cmp eax, ecx
jne 0x466569
mov edx, dword [esp + 0x20]
mov dword [esp + 0x18], edx
jmp 0x4665d3
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0xc]
cmp eax, 1
jne 0x46659e
mov al, byte [edi + 0x13]
test al, al
jne 0x466589
inc dword [edi + 0x2c]
mov edx, dword [edi + 0x2c]
mov dword [esp + 0x18], edx
jmp 0x4665cf
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov edx, dword [edi + eax*4 + 0x15c]
mov dword [esp + 0x18], edx
jmp 0x4665cf
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x20]
mov dword [esp + 0x18], edx
cmp eax, ecx
jg 0x4665ba
add eax, edx
sub ecx, dword [esp + 0x58]
mov dword [edi + 0x20], eax
mov dword [edi + 0x1c], ecx
jmp 0x4665cb
mov eax, dword [edi + 0x2c]
lea edx, [eax + 1]
add eax, dword [esp + 0x58]
mov dword [esp + 0x18], edx
mov dword [edi + 0x2c], eax
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x10]
cmp dword [ebp + 0x18], 0
jne 0x4665e4
cmp dword [esp + 0x24], 5
jne 0x4669e6
mov edi, dword [esp + 8]
test byte [edi + 0x24], 0x20
jne 0x4666e2
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x466620
mov eax, dword [esp + 0x14]
mov ecx, esi
add eax, dword [ebp + 0x10]
push 0
push edx
push eax
mov edx, 0x82
call fcn.00429830
mov edx, dword [esp + 0x24]
add esp, 0xc
jmp 0x46665d
mov edi, dword [esp + 0x14]
lea eax, [ecx + 1]
add edi, dword [ebp + 0x10]
lea ecx, [ecx + ecx*4]
mov edx, dword [esp + 0x18]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x58]
mov esi, dword [esp + 0x3c]
mov dword [eax + ecx*4], 0x82
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [ebp + 0x18]
test edi, edi
je 0x4669e6
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x46668d
push edi
push dword [esp + 0x20]
mov ecx, esi
push edx
mov edx, 0x35
call fcn.00429830
add esp, 0xc
jmp 0x4666bb
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0x35
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x88]
mov edi, dword [esp + 0x18]
test eax, eax
jle 0x4669ea
lea ecx, [eax + eax*4]
mov edx, 0x90
mov eax, dword [esi + 0x58]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x4669ea
cmp eax, ecx
je 0x4667d0
xor esi, esi
xor edi, edi
cmp si, word [ecx + 0x32]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x38], edi
jae 0x4667d0
mov dword [esp + 0x28], edx
jmp 0x46670a
mov eax, dword [esp + 0x10]
movzx edx, word [eax + 0x34]
xor ecx, ecx
test edx, edx
je 0x466733
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 4]
movzx edi, word [eax + edi*2]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
cmp di, word [eax]
je 0x46676a
inc ecx
add eax, 2
cmp ecx, edx
jl 0x466726
or eax, 0xffffffff
mov ecx, dword [esi + 0x88]
movsx edx, ax
mov eax, dword [esi + 0xc]
mov dword [esp + 0x44], edx
cmp dword [eax + 0x30], ecx
jg 0x46676f
mov edi, dword [esp + 0x28]
mov ecx, esi
mov eax, dword [esp + 0x14]
add eax, dword [ebp + 0x10]
push edi
push edx
push eax
mov edx, 0x60
call fcn.00429830
add esp, 0xc
jmp 0x4667ac
movzx eax, cx
jmp 0x466736
mov edi, dword [esp + 0x14]
lea eax, [ecx + 1]
add edi, dword [ebp + 0x10]
lea ecx, [ecx + ecx*4]
mov edx, dword [esp + 0x44]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x58]
mov esi, dword [esp + 0x3c]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x28]
mov dword [eax + ecx*4], 0x60
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x34]
inc edi
mov ecx, dword [esp + 0x38]
inc ecx
mov dword [esp + 0x28], edi
mov dword [esp + 0x38], ecx
mov edi, ecx
movzx eax, word [eax + 0x32]
cmp ecx, eax
jl 0x466706
mov ecx, dword [esp + 0x34]
cmp dword [ebp + 0x18], 0
mov edi, dword [esp + 0x18]
je 0x4669ea
movzx ecx, word [ecx + 0x32]
mov edx, edi
mov eax, dword [esi + 0x88]
add eax, ecx
mov dword [esp + 0x4c], 0x34
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
and al, 3
cmp al, 2
cmove edx, dword [esp + 0x20]
mov dword [esp + 0x44], edx
xor edx, edx
mov dword [esp + 0x38], edx
test ecx, ecx
je 0x4669ea
nop word [eax + eax]
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x20]
mov edx, dword [eax + edx*4]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x68], edx
mov edi, dword [eax]
mov ch, byte [edi + 0x46]
mov cl, byte [edi + 0x9d]
mov byte [esp + 0x33], ch
mov byte [esp + 0x53], cl
test edx, edx
je 0x46686b
movzx eax, cl
mov ecx, edi
push eax
call fcn.004591f0
mov cl, byte [esp + 0x57]
add esp, 4
mov edx, dword [esp + 0x68]
mov edi, eax
mov ch, byte [esp + 0x33]
mov dword [esp + 0x28], eax
jmp 0x466872
mov edi, dword [edi + 8]
mov dword [esp + 0x28], edi
test edi, edi
je 0x466886
movzx eax, ch
lea eax, [eax + eax*4]
lea edi, [edi + eax*4]
add edi, 0xffffffec
mov dword [esp + 0x28], edi
test cl, cl
jne 0x4668aa
test edi, edi
je 0x466894
cmp dword [edi + 0xc], 0
jne 0x4668aa
push edx
mov dl, ch
mov ecx, dword [esp + 0x10]
push edi
call fcn.004590c0
mov edi, eax
add esp, 8
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov ecx, dword [eax + 4]
movsx eax, word [ecx + edx*2]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x68], eax
movzx ecx, word [ecx + 0x32]
dec ecx
cmp edx, ecx
jne 0x4668da
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x4c], 0x35
mov edx, dword [esi + 0x88]
mov ecx, dword [ebp + 0x18]
mov esi, dword [esp + 0x3c]
inc ecx
add ecx, eax
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x30], edx
jg 0x466912
mov eax, dword [esp + 0x38]
add eax, dword [esp + 0x44]
mov edx, dword [esp + 0x4c]
push eax
push dword [esp + 0x44]
push ecx
mov ecx, esi
call fcn.00429830
add esp, 0xc
mov edx, eax
jmp 0x466964
mov edi, dword [esp + 0x28]
lea eax, [edx + 1]
mov dword [esi + 0x88], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x58]
mov esi, dword [esp + 0x68]
inc esi
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x4c]
mov byte [eax], cl
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [ebp + 0x18]
add ecx, esi
mov esi, dword [esp + 0x3c]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x40]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x38]
add ecx, dword [esp + 0x44]
mov dword [eax + 0xc], ecx
mov ecx, dword [esi]
cmp byte [ecx + 0x49], 0
je 0x46697c
push edi
mov edx, 0xfffffffe
call fcn.0042a2b0
add esp, 4
jmp 0x4669b3
test edx, edx
jns 0x466987
mov edx, dword [esi + 0x88]
dec edx
mov eax, dword [esi + 0x58]
lea ecx, [edx + edx*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
je 0x4669a8
push 0xfffffffffffffffe
push edi
mov edx, eax
mov ecx, esi
call fcn.0042a4d0
add esp, 8
jmp 0x4669b3
test edi, edi
je 0x4669b3
mov dword [eax + 0x10], edi
mov byte [eax + 1], 0xfe
mov eax, dword [esi + 0x88]
test eax, eax
jle 0x4669cd
lea ecx, [eax + eax*4]
mov edx, 0x90
mov eax, dword [esi + 0x58]
mov word [eax + ecx*4 - 0x12], dx
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
inc edx
mov dword [esp + 0x38], edx
movzx eax, word [eax + 0x32]
cmp edx, eax
jl 0x466820
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
test edx, edx
je 0x466a78
cmp edx, 3
jbe 0x466a63
cmp edx, 4
jne 0x466a78
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x466a29
push 0
push dword [ebp + 0x24]
mov edx, 0xd
mov ecx, esi
push 0
call fcn.00429830
add esp, 0xc
jmp 0x466b24
mov edx, dword [ebp + 0x24]
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0xd
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x466b24
push dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
call fcn.00457f20
add esp, 4
jmp 0x466b24
mov ecx, dword [esp + 0xc]
xor edx, edx
mov eax, dword [ecx + 0x78]
test eax, eax
cmovne ecx, eax
mov eax, dword [esp + 0x54]
mov byte [ecx + 0x14], 1
test dword [eax + 0x1c], 0x2000
je 0x466ae1
mov ecx, dword [esp + 0xc]
xor edi, edi
mov dword [esp + 0x44], edx
mov eax, dword [ecx]
test dword [eax + 0x1c], 0x40000
je 0x466abb
mov edx, dword [esp + 8]
call fcn.0047f770
mov edx, eax
mov dword [esp + 0x44], eax
mov ecx, edx
test edx, edx
je 0x466ad4
cmp byte [ecx + 8], 0x6d
jne 0x466acd
movzx eax, byte [ecx + 9]
or edi, eax
mov ecx, dword [ecx + 0x20]
test ecx, ecx
jne 0x466ac1
xor edx, edx
test edi, edi
mov edi, dword [esp + 0x18]
cmovne edx, dword [esp + 0x44]
mov eax, dword [esp + 0x14]
add eax, dword [ebp + 0x10]
push eax
mov eax, dword [esp + 0x38]
cmp dword [esp + 0x14], eax
mov ecx, dword [esp + 0x10]
sete al
movzx eax, al
push eax
push 5
push 0
push dword [esp + 0x68]
push edi
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push edx
mov edx, dword [esp + 0x2c]
call fcn.0045aff0
mov esi, dword [esp + 0x60]
add esp, 0x24
mov dword [esp + 0x60], 1
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x466b43
mov eax, dword [esp + 0x1c]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x88]
mov dword [ecx], eax
cmp edi, dword [esp + 0x20]
je 0x466bca
mov eax, dword [esp + 0x58]
cmp eax, 1
jne 0x466ba8
test edi, edi
je 0x466bca
mov edx, dword [esp + 0xc]
mov al, byte [edx + 0x13]
mov byte [esp + 0x33], al
cmp al, 8
jae 0x466bca
lea eax, [edx + 0x94]
xor ecx, ecx
movzx edx, byte [edx + 0x19]
test edx, edx
je 0x466b8d
nop dword [eax]
cmp dword [eax + 0xc], edi
je 0x466ba2
inc ecx
add eax, 0x14
cmp ecx, edx
jl 0x466b80
mov edx, dword [esp + 0xc]
movzx eax, byte [esp + 0x33]
mov dword [edx + eax*4 + 0x15c], edi
inc byte [edx + 0x13]
jmp 0x466bca
mov byte [eax + 6], 1
jmp 0x466bca
mov ecx, dword [esp + 0xc]
mov edx, edi
push eax
call fcn.00445c10
mov edx, dword [esp + 0x10]
add esp, 4
mov eax, dword [esp + 0x58]
cmp eax, dword [edx + 0x1c]
jle 0x466bca
mov dword [edx + 0x1c], eax
mov dword [edx + 0x20], edi
mov edi, dword [esp + 8]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 0x14]
inc ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
test eax, eax
jne 0x466080
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x466c7f
mov ecx, dword [esi + 0x88]
lea edi, [eax + 1]
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x466c21
push 0
push edi
push 0
mov edx, 0xd
mov ecx, esi
call fcn.00429830
add esp, 0xc
jmp 0x466c53
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov dword [eax + ecx*4], 0xd
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x64]
mov edx, dword [esi + 0x88]
test ecx, ecx
jns 0x466c64
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
je 0x466c73
mov eax, 0x5600c0
jmp 0x466c7c
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x60]
pop edi
pop esi
mov dword [ecx], eax
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.004f49c2
mov esp, ebp
pop ebp
ret