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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x98
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0x94], eax
mov eax, ecx
mov dword [esp + 4], edx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x20], 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 + 0xc], 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 + 0x1c], edi
test esi, esi
jne 0x4706d6
cmp dword [eax + 0x78], esi
jne 0x4706c5
test byte [ecx + 0x44], 8
jne 0x4706c5
mov byte [eax + 0x17], 1
mov ecx, eax
call fcn.00434280
mov edx, dword [esp + 0xc]
mov esi, eax
mov dword [esp + 0x3c], esi
test byte [edx + 0x24], 0x20
movsx eax, word [edx + 0x2a]
mov dword [esp + 0x40], eax
jne 0x4706f6
mov dword [esp + 0x34], 0
mov dword [esp + 0x58], 1
jmp 0x470721
mov ecx, dword [edx + 8]
mov dword [esp + 0x34], ecx
test ecx, ecx
je 0x470719
mov eax, dword [ecx + 0x38]
and al, 3
cmp al, 2
je 0x470711
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x470701
mov eax, dword [esp + 0x40]
mov dword [esp + 0x34], ecx
movzx ecx, word [ecx + 0x32]
mov dword [esp + 0x58], ecx
test eax, eax
jle 0x4709eb
mov ecx, dword [ebp + 0x14]
xor edi, edi
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x2c], eax
mov eax, ecx
not eax
mov dword [esp + 0x18], edi
lea edx, [ecx + 1]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x20], edx
nop dword [eax]
lea ecx, [edx + eax]
mov eax, dword [esp + 0xc]
movsx eax, word [eax + 0x28]
cmp ecx, eax
je 0x4709bc
cmp dword [esp + 0x1c], 0
je 0x470777
mov eax, dword [esp + 0x2c]
cmp dword [eax], 0
jl 0x4709bc
mov eax, dword [esp + 0xc]
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 0x4709bc
mov ah, byte [ebp + 0x20]
cmp ah, 0xa
jne 0x470803
cmp al, ah
jne 0x470803
mov edi, 2
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x78]
test eax, eax
cmovne ecx, eax
mov byte [ecx + 0x15], 1
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
mov eax, dword [edx + 4]
push dword [eax + ecx]
push dword [edx]
push str._s._s
push dword [esp + 0x60]
call fcn.004124b0
mov ecx, dword [esi + 0x88]
add esp, 0x10
mov edx, dword [esp + 0x20]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x470833
push edx
push edi
push 0x513
mov edx, 0x41
mov ecx, esi
call fcn.00434530
add esp, 0xc
jmp 0x470861
cmp ah, 0xa
movzx edi, ah
cmove edi, dword [esp + 0x44]
cmp edi, 5
jne 0x470820
cmp dword [ecx + 4], 0
jne 0x470820
mov edi, 2
jmp case.0x47082c.2
lea eax, [edi - 1]
cmp eax, 3
ja case.default.0x47082c
jmp dword [eax*4 + 0x471cdc]
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 0x47087d
push edx
mov edx, 0xfffffff9
call fcn.00434fc0
add esp, 4
jmp 0x470892
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 0x4709b8
lea ecx, [eax + eax*4]
mov edx, 1
mov eax, dword [esi + 0x58]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x4709b8
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x4708dd
push 0
push dword [ebp + 0x24]
mov ecx, esi
push edx
mov edx, 0x32
call fcn.00434530
add esp, 0xc
jmp 0x4709b8
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 0x4709bc
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 0x88]
cmp dword [eax + 0x30], edi
jg 0x47093d
push 0
push 0
push edx
mov edx, 0x33
mov ecx, esi
call fcn.00434530
mov edx, dword [esp + 0x2c]
add esp, 0xc
mov edi, eax
jmp 0x470973
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 + 0xc]
mov ecx, dword [esp + 0x18]
push edx
mov edx, dword [eax + 4]
mov edx, dword [edx + ecx + 4]
mov ecx, dword [esp + 0x14]
call fcn.004538c0
mov eax, dword [esi]
add esp, 4
mov edx, dword [esi + 0x88]
cmp byte [eax + 0x49], 0
je 0x4709a4
mov eax, 0x4dee30
jmp 0x4709b5
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 + 0x20]
mov eax, dword [esp + 0x4c]
inc edx
add dword [esp + 0x18], 0x10
add eax, edx
add dword [esp + 0x2c], 4
cmp eax, dword [esp + 0x40]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x20], edx
jl 0x470750
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0xc]
mov edx, dword [edx + 0x18]
mov dword [esp + 0x20], edx
mov dword [esp + 8], 2
test edx, edx
je 0x470c73
mov eax, dword [esp + 0x54]
test dword [eax + 0x1c], 0x200
jne 0x470c73
mov ecx, dword [esp + 0x10]
mov eax, dword [ebp + 0x14]
not eax
mov dword [ecx + 0x38], eax
mov al, byte [ebp + 0x20]
cmp al, 0xa
je 0x470a2f
movzx eax, al
mov dword [esp + 0x38], eax
jmp 0x470a37
mov dword [esp + 0x38], 2
xor ecx, ecx
mov dword [esp + 0x18], ecx
cmp dword [edx], ecx
jle 0x470c68
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 0x470ab8
mov dword [esp + 0x88], 0
xorps xmm0, xmm0
movaps xmmword [esp + 0x70], xmm0
movq qword [esp + 0x80], xmm0
mov dword [esp + 0x74], 0x470610
mov dword [esp + 0x88], edi
test eax, eax
je 0x470aa1
mov edx, eax
lea ecx, [esp + 0x70]
call fcn.00448c90
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
cmp byte [ebp + 0x1c], 0
mov al, byte [esp + 0x84]
jne 0x470ab0
and al, 0xfd
test al, al
je 0x470c50
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 0x470af6
mov edx, dword [ecx]
lea eax, [edi*8 + 4]
mov ecx, dword [esp + 0x44]
push 0
push eax
mov ecx, dword [ecx]
call fcn.00410620
mov ecx, dword [esp + 0x2c]
add esp, 8
mov dword [ecx], eax
mov eax, dword [ecx]
test eax, eax
je 0x470b03
mov dword [eax + edi*4], 0xffffffff
push 0x10
not edi
push edi
push dword [esp + 0x48]
push dword [esp + 0x1c]
call fcn.00453d80
mov edx, dword [esp + 0x48]
add esp, 0x10
cmp edx, 4
jne 0x470b84
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x470b4a
push 0
push dword [ebp + 0x24]
mov edx, 0xd
mov ecx, esi
push 0
call fcn.00434530
add esp, 0xc
jmp 0x470c29
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 0x470c29
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx]
mov dword [esp + 0x24], ecx
test ecx, ecx
jne 0x470b9c
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x10]
cmp edx, 5
mov eax, 2
cmove edx, eax
mov dword [esp + 0x38], edx
mov eax, dword [ecx + 8]
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x470bdc
cmp dword [ecx + 0x78], eax
jne 0x470bcb
mov eax, dword [ecx]
test byte [eax + 0x44], 8
jne 0x470bcb
mov byte [ecx + 0x17], 1
call fcn.00434280
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x2c], eax
cmp edx, 2
jne 0x470bed
mov eax, dword [ecx + 0x78]
test eax, eax
cmovne ecx, eax
mov byte [ecx + 0x15], 1
mov ecx, dword [esp + 0x2c]
push 0
push dword [esp + 0x28]
push 0
push edx
push 0x113
mov edx, 0x42
call fcn.00434870
mov eax, dword [esp + 0x40]
add esp, 0x14
mov ecx, dword [eax + 0x88]
test ecx, ecx
jle 0x470c29
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 + 0x20]
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x470c48
lea eax, [edi*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x88]
mov dword [ecx], eax
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
inc ecx
add eax, 0x18
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], eax
cmp ecx, dword [edx]
jl 0x470a54
mov eax, dword [esp + 0x10]
mov dword [eax + 0x38], 0
cmp byte [ebp + 0x1c], 0
je 0x471089
cmp dword [esp + 0x34], 0
jne 0x471089
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + 0x44]
lea edi, [ecx + 0x48]
mov dword [esp + 0x18], edx
lea eax, [edx + 1]
mov dword [ecx + 0x44], eax
lea eax, [edx - 1]
test edx, eax
jne 0x470cbe
mov ecx, dword [ecx]
lea eax, [edx*8 + 4]
mov edx, dword [edi]
push 0
push eax
call fcn.00410620
mov edx, dword [esp + 0x20]
add esp, 8
mov dword [edi], eax
mov eax, dword [edi]
test eax, eax
je 0x470ccb
mov dword [eax + edx*4], 0xffffffff
mov eax, dword [esp + 0xc]
not edx
mov cl, byte [ebp + 0x20]
mov dword [esp + 0x18], edx
movzx edi, byte [eax + 0x30]
cmp cl, 0xa
je 0x470ce6
movzx edi, cl
jmp 0x470cee
cmp edi, 0xa
cmove edi, dword [esp + 8]
cmp dword [ebp + 0x18], 0
je 0x470d6f
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x470d1a
push dword [ebp + 0x18]
mov ecx, esi
push edx
push dword [ebp + 0x14]
mov edx, 0x35
call fcn.00434530
add esp, 0xc
jmp 0x470d4e
mov edx, dword [ebp + 0x14]
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 + 0x18]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [ebp + 0x18]
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 0x470d68
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 + 0xc]
cmp edi, 5
jne 0x470e01
cmp cl, 5
je 0x470e01
mov eax, dword [eax + 8]
test eax, eax
je 0x470e01
mov cl, byte [eax + 0x36]
cmp cl, 4
je 0x470d9e
cmp cl, 3
je 0x470d9e
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x470d88
jmp 0x470e01
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x88]
mov dword [esp + 0x5c], edx
cmp dword [eax + 0x30], edx
jg 0x470dcb
push 0
push 0
push 0
mov edx, 0xd
mov ecx, esi
call fcn.00434530
add esp, 0xc
mov dword [esp + 0x5c], eax
jmp 0x470e01
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 0x470e2c
push dword [ebp + 0x14]
mov edx, dword [esp + 0x1c]
mov ecx, esi
push edx
mov edx, dword [ebp + 0xc]
push edx
mov edx, 0x20
call fcn.00434530
add esp, 0xc
jmp 0x470e60
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 + 0x18]
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.0x470e6c
jmp dword [eax*4 + 0x471cec]
mov eax, dword [esp + 0x54]
xor edi, edi
test dword [eax + 0x1c], 0x2000
je 0x470ec8
mov ecx, dword [esp + 0x10]
xor edx, edx
mov eax, dword [ecx]
test dword [eax + 0x1c], 0x40000
je 0x470e9e
mov edx, dword [esp + 0xc]
call fcn.0048a160
mov edx, eax
mov ecx, edx
test edx, edx
je 0x470eb7
cmp byte [ecx + 8], 0x6d
jne 0x470eb0
movzx eax, byte [ecx + 9]
or edi, eax
mov ecx, dword [ecx + 0x20]
test ecx, ecx
jne 0x470ea4
xor eax, eax
test edi, edi
cmovne eax, edx
mov dword [esp + 0x24], eax
mov edi, eax
test eax, eax
jne 0x470f1c
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
push 0
push 0
call fcn.0046ca80
add esp, 8
test eax, eax
jne 0x470f1c
mov edx, dword [esp + 0xc]
cmp dword [edx + 8], eax
je 0x470f50
mov edi, dword [esp + 0x10]
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.00466640
add esp, 0x10
mov dword [esp + 0x60], 1
jmp 0x470fce
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
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 + 0x30]
push edi
call fcn.004660b0
add esp, 0x24
mov dword [esp + 0x60], 1
jmp 0x470fce
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x470f80
push 0
push dword [ebp + 0x24]
mov edx, 0xd
mov ecx, esi
push 0
call fcn.00434530
add esp, 0xc
jmp 0x470fce
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 0x470fce
mov edi, 2
push dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
mov edx, edi
call fcn.00463460
add esp, 4
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x470fed
mov eax, dword [esp + 0x18]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x88]
mov dword [ecx], eax
cmp dword [esp + 0x5c], 0
je 0x471089
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 0x88]
mov dword [esp + 0x64], edi
cmp dword [eax + 0x30], edi
jg 0x471025
push 0
push 0
push 0
mov edx, 0xd
mov ecx, esi
call fcn.00434530
add esp, 0xc
mov dword [esp + 0x64], eax
jmp 0x47105b
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 [esp + 0x5c]
mov ecx, eax
mov edx, dword [esi + 0x88]
test eax, eax
jns 0x47106e
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
je 0x47107d
mov eax, 0x4dee30
jmp 0x471086
mov eax, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov edi, dword [esp + 0xc]
mov dword [esp + 0x14], 0
mov eax, dword [edi + 8]
mov dword [esp + 8], eax
test eax, eax
je 0x471c2a
mov edx, dword [esp + 0x28]
xor ecx, ecx
nop word [eax + eax]
cmp dword [edx + ecx*4], 0
je 0x471c16
cmp byte [esp + 0x4b], 0
jne 0x4710d7
mov eax, dword [ebp + 0x14]
mov edx, edi
inc eax
mov ecx, esi
push eax
call fcn.0046e080
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 + 0x20], edx
lea eax, [edx + 1]
mov dword [ecx + 0x44], eax
lea eax, [edx - 1]
test edx, eax
jne 0x47110d
mov ecx, dword [ecx]
lea eax, [edx*8 + 4]
mov edx, dword [edi]
push 0
push eax
call fcn.00410620
mov edx, dword [esp + 0x28]
add esp, 8
mov dword [edi], eax
mov eax, dword [edi]
test eax, eax
je 0x47111a
mov dword [eax + edx*4], 0xffffffff
mov edi, dword [esp + 8]
not edx
mov dword [esp + 0x20], edx
cmp dword [edi + 0x24], 0
je 0x4711fe
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + eax*4]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x47115d
push 0
push edx
push 0
mov edx, 0x46
mov ecx, esi
call fcn.00434530
add esp, 0xc
jmp 0x471193
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 + 0x10]
mov eax, dword [ebp + 0x14]
not eax
mov dword [ecx + 0x38], eax
mov edx, dword [edi + 0x24]
mov eax, dword [ecx]
mov dword [esp + 0x24], eax
test edx, edx
je 0x4711c6
push 0
push 0
mov ecx, eax
call fcn.0044ca30
mov ecx, dword [esp + 0x18]
mov edi, eax
mov eax, dword [esp + 0x2c]
add esp, 8
jmp 0x4711c8
xor edi, edi
cmp byte [eax + 0x49], 0
jne 0x4711e2
push 0x10
push dword [esp + 0x24]
push edi
push ecx
call fcn.004543c0
mov eax, dword [esp + 0x34]
add esp, 0x10
test edi, edi
je 0x4711ef
mov edx, edi
mov ecx, eax
call fcn.0044c7a0
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 8]
mov dword [eax + 0x38], 0
mov ecx, dword [esp + 0x28]
xor edx, edx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x40], edx
mov eax, dword [ecx + eax*4]
inc eax
mov dword [esp + 0x18], eax
movzx eax, word [edi + 0x34]
xor edi, edi
mov ecx, eax
cmp di, ax
jae 0x47135c
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x4c], edi
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
movsx edx, word [eax + edx*2]
cmp edx, 0xfffffffe
jne 0x4712b4
mov ecx, dword [esp + 0x10]
mov eax, dword [ebp + 0x14]
not eax
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x28]
mov edx, dword [eax + edi + 4]
mov eax, dword [ecx]
mov dword [esp + 0x24], eax
test edx, edx
je 0x471278
push 0
push 0
mov ecx, eax
call fcn.0044ca30
mov edi, eax
add esp, 8
mov eax, dword [esp + 0x24]
jmp 0x47127a
xor edi, edi
cmp byte [eax + 0x49], 0
jne 0x471297
mov ecx, dword [esp + 0x1c]
mov edx, edi
push ecx
mov ecx, dword [esp + 0x14]
call fcn.004538c0
mov eax, dword [esp + 0x28]
add esp, 4
test edi, edi
je 0x4712a4
mov edx, edi
mov ecx, eax
call fcn.0044c7a0
mov eax, dword [esp + 0x10]
mov dword [eax + 0x38], 0
jmp 0x471334
cmp edx, 0xffffffff
je 0x4712cd
mov eax, dword [esp + 0xc]
movsx eax, word [eax + 0x28]
cmp edx, eax
je 0x4712cd
mov edi, dword [ebp + 0x14]
inc edi
add edi, edx
jmp 0x4712d0
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 0x4712fb
mov ecx, dword [esp + 0x1c]
push 0
push ecx
push edi
mov ecx, esi
call fcn.00434530
add esp, 0xc
jmp 0x471334
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 + 0x1c]
mov dword [eax + 8], ecx
mov byte [eax + 1], 0
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0x4c]
inc edx
inc dword [esp + 0x1c]
add edi, 0x18
movzx ecx, word [eax + 0x34]
mov dword [esp + 0x40], edx
mov dword [esp + 0x4c], edi
cmp edx, ecx
jl 0x471231
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
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 0x47138f
push edx
push edi
push dword [esp + 0x20]
mov edx, 0x63
mov ecx, esi
call fcn.00434530
add esp, 0xc
jmp 0x4713c1
lea eax, [ecx + 1]
mov dword [esi + 0x88], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x58]
mov esi, dword [esp + 0x18]
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 + 8]
mov edx, dword [esp + 0x34]
je 0x471409
cmp edx, ecx
jne 0x471409
cmp byte [ebp + 0x1c], 0
jne 0x471409
mov edi, dword [esp + 0xc]
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x28]
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x471c0e
mov eax, dword [esp + 0x20]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x88]
mov dword [ecx], eax
jmp 0x471c0e
movzx eax, byte [ecx + 0x36]
test eax, eax
je 0x4713d9
cmp byte [ebp + 0x20], 0xa
je 0x47141d
movzx eax, byte [ebp + 0x20]
jmp 0x471428
cmp eax, 0xa
mov edi, 2
cmove eax, edi
cmp dword [esp + 0x14], 0
mov dword [esp + 0x24], eax
jne 0x4714d8
cmp dword [ecx + 0x14], 0
jne 0x4714d8
cmp edx, ecx
jne 0x4714d8
cmp eax, 5
jne 0x4714d8
mov eax, dword [esp + 0x54]
test dword [eax + 0x1c], 0x2000
je 0x4714a5
mov ecx, dword [esp + 0x10]
xor edi, edi
xor edx, edx
mov eax, dword [ecx]
test dword [eax + 0x1c], 0x40000
je 0x47147d
mov edx, dword [esp + 0xc]
call fcn.0048a160
mov edx, eax
mov ecx, edx
test edx, edx
je 0x4714a1
cmp byte [ecx + 8], 0x6d
jne 0x47148f
movzx eax, byte [ecx + 9]
or edi, eax
mov ecx, dword [ecx + 0x20]
test ecx, ecx
jne 0x471483
xor eax, eax
test edi, edi
cmovne eax, edx
test eax, eax
jne 0x4714d8
mov eax, dword [esp + 0x54]
test dword [eax + 0x1c], 0x4000
mov edi, dword [esp + 0xc]
je 0x4713dd
cmp dword [edi + 0x10], 0
jne 0x4714d8
mov ecx, dword [edi + 0x48]
mov edx, dword [edi]
add ecx, 0x38
push 0
call fcn.00414a50
add esp, 4
cmp dword [eax + 8], 0
je 0x4713dd
mov eax, dword [esp + 8]
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 0x471519
push dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov edx, 0x1c
push dword [esp + 0x24]
add eax, dword [ebp + 0x10]
mov ecx, esi
push eax
call fcn.00434530
add esp, 0xc
mov edx, eax
jmp 0x47155e
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 + 0x20]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x18]
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 0x471575
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 + 8]
mov ecx, dword [esp + 0x34]
cmp eax, ecx
jne 0x47158b
mov edx, dword [esp + 0x18]
mov dword [esp + 0x1c], edx
jmp 0x4715f5
mov edi, dword [esp + 0x58]
mov edx, dword [esp + 0x10]
cmp edi, 1
jne 0x4715c0
mov al, byte [edx + 0x13]
test al, al
jne 0x4715ab
inc dword [edx + 0x2c]
mov eax, dword [edx + 0x2c]
mov dword [esp + 0x1c], eax
jmp 0x4715ed
dec al
mov byte [edx + 0x13], al
movzx eax, al
mov eax, dword [edx + eax*4 + 0x15c]
mov dword [esp + 0x1c], eax
jmp 0x4715ed
mov ecx, dword [edx + 0x1c]
mov eax, dword [edx + 0x20]
mov dword [esp + 0x1c], eax
cmp edi, ecx
jg 0x4715da
add eax, edi
sub ecx, edi
mov dword [edx + 0x20], eax
mov dword [edx + 0x1c], ecx
jmp 0x4715e9
mov eax, dword [edx + 0x2c]
lea ecx, [eax + 1]
add eax, edi
mov dword [esp + 0x1c], ecx
mov dword [edx + 0x2c], eax
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 8]
cmp dword [ebp + 0x18], 0
jne 0x471606
cmp dword [esp + 0x24], 5
jne 0x471a08
mov edi, dword [esp + 0xc]
test byte [edi + 0x24], 0x20
jne 0x471704
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x471642
mov eax, dword [esp + 0x14]
mov ecx, esi
add eax, dword [ebp + 0x10]
push 0
push edx
push eax
mov edx, 0x82
call fcn.00434530
mov edx, dword [esp + 0x28]
add esp, 0xc
jmp 0x47167f
mov edi, dword [esp + 0x14]
lea eax, [ecx + 1]
add edi, dword [ebp + 0x10]
lea ecx, [ecx + ecx*4]
mov edx, dword [esp + 0x1c]
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 0x471a08
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x4716af
push edi
push dword [esp + 0x24]
mov ecx, esi
push edx
mov edx, 0x35
call fcn.00434530
add esp, 0xc
jmp 0x4716dd
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], 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 + 8]
test eax, eax
jle 0x471a0c
lea ecx, [eax + eax*4]
mov edx, 0x90
mov eax, dword [esi + 0x58]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x471a0c
cmp eax, ecx
je 0x4717fa
xor esi, esi
xor edi, edi
cmp si, word [ecx + 0x32]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x38], edi
jae 0x4717fa
mov dword [esp + 0x2c], edx
jmp 0x471734
mov eax, dword [esp + 8]
movzx edx, word [eax + 0x34]
xor ecx, ecx
test edx, edx
je 0x47175d
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 4]
movzx edi, word [eax + edi*2]
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
cmp di, word [eax]
je 0x471794
inc ecx
add eax, 2
cmp ecx, edx
jl 0x471750
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 0x471799
mov edi, dword [esp + 0x2c]
mov ecx, esi
mov eax, dword [esp + 0x14]
add eax, dword [ebp + 0x10]
push edi
push edx
push eax
mov edx, 0x60
call fcn.00434530
add esp, 0xc
jmp 0x4717d6
movzx eax, cx
jmp 0x471760
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 + 0x2c]
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 + 0x2c], edi
mov dword [esp + 0x38], ecx
mov edi, ecx
movzx eax, word [eax + 0x32]
cmp ecx, eax
jl 0x471730
mov ecx, dword [esp + 0x34]
cmp dword [ebp + 0x18], 0
mov edi, dword [esp + 8]
je 0x471a0c
movzx ecx, word [ecx + 0x32]
mov eax, dword [esi + 0x88]
mov edx, dword [esp + 0x1c]
add eax, ecx
mov dword [esp + 0x40], eax
mov eax, dword [edi + 0x38]
and al, 3
mov dword [esp + 0x4c], 0x34
cmp al, 2
cmove edx, dword [esp + 0x18]
mov dword [esp + 0x44], edx
xor edx, edx
mov dword [esp + 0x38], edx
test ecx, ecx
je 0x471a0c
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x20]
mov edx, dword [eax + edx*4]
mov eax, dword [esp + 0x10]
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 0x47188d
movzx eax, cl
mov ecx, edi
push eax
call fcn.00464370
mov cl, byte [esp + 0x57]
add esp, 4
mov edx, dword [esp + 0x68]
mov edi, eax
mov ch, byte [esp + 0x33]
mov dword [esp + 0x2c], eax
jmp 0x471894
mov edi, dword [edi + 8]
mov dword [esp + 0x2c], edi
test edi, edi
je 0x4718a8
movzx eax, ch
lea eax, [eax + eax*4]
lea edi, [edi + eax*4]
add edi, 0xffffffec
mov dword [esp + 0x2c], edi
test cl, cl
jne 0x4718cc
test edi, edi
je 0x4718b6
cmp dword [edi + 0xc], 0
jne 0x4718cc
push edx
mov dl, ch
mov ecx, dword [esp + 0x14]
push edi
call fcn.00464240
mov edi, eax
add esp, 8
mov dword [esp + 0x2c], 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 0x4718fc
mov ecx, dword [esp + 0x20]
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 0x471934
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.00434530
add esp, 0xc
mov edx, eax
jmp 0x471986
mov edi, dword [esp + 0x2c]
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 0x47199e
push edi
mov edx, 0xfffffffe
call fcn.00434fc0
add esp, 4
jmp 0x4719d5
test edx, edx
jns 0x4719a9
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 0x4719ca
push 0xfffffffffffffffe
push edi
mov edx, eax
mov ecx, esi
call fcn.004351e0
add esp, 8
jmp 0x4719d5
test edi, edi
je 0x4719d5
mov dword [eax + 0x10], edi
mov byte [eax + 1], 0xfe
mov eax, dword [esi + 0x88]
test eax, eax
jle 0x4719ef
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 0x471842
mov edi, dword [esp + 8]
mov edx, dword [esp + 0x24]
lea eax, [edx - 1]
cmp eax, 3
ja case.default.0x471a1c
jmp dword [eax*4 + 0x471d00]
push edi
mov edi, dword [esp + 0x14]
mov ecx, edi
call fcn.00463170
add esp, 4
jmp 0x471b54
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x471a64
push 0
push dword [ebp + 0x24]
mov edx, 0xd
mov ecx, esi
push 0
call fcn.00434530
mov edi, dword [esp + 0x1c]
add esp, 0xc
jmp 0x471b54
mov edx, dword [ebp + 0x24]
lea eax, [ecx + 1]
mov edi, dword [esp + 0x10]
lea ecx, [ecx + ecx*4]
mov dword [esi + 0x88], eax
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 0x471b54
mov edi, dword [esp + 0x10]
xor edx, edx
mov ecx, edi
mov eax, dword [edi + 0x78]
test eax, eax
cmovne ecx, eax
mov eax, dword [esp + 0x54]
mov byte [ecx + 0x14], 1
test dword [eax + 0x1c], 0x2000
je 0x471b10
mov ecx, dword [esp + 0x10]
xor edi, edi
mov dword [esp + 0x44], edx
mov eax, dword [ecx]
test dword [eax + 0x1c], 0x40000
je 0x471ae7
mov edx, dword [esp + 0xc]
call fcn.0048a160
mov edx, eax
mov dword [esp + 0x44], eax
mov ecx, edx
test edx, edx
je 0x471b03
nop dword [eax]
cmp byte [ecx + 8], 0x6d
jne 0x471afc
movzx eax, byte [ecx + 9]
or edi, eax
mov ecx, dword [ecx + 0x20]
test ecx, ecx
jne 0x471af0
xor edx, edx
test edi, edi
mov edi, dword [esp + 0x10]
cmovne edx, dword [esp + 0x44]
mov eax, dword [esp + 0x14]
mov ecx, edi
add eax, dword [ebp + 0x10]
push eax
mov eax, dword [esp + 0x38]
cmp dword [esp + 0xc], eax
sete al
movzx eax, al
push eax
push 5
push 0
push dword [esp + 0x68]
push dword [esp + 0x30]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push edx
mov edx, dword [esp + 0x30]
call fcn.004660b0
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 0x471b73
mov eax, dword [esp + 0x20]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x88]
mov dword [ecx], eax
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x18]
je 0x471c06
mov edx, dword [esp + 0x58]
cmp edx, 1
jne 0x471be6
test eax, eax
je 0x471c06
cmp byte [edi + 0x13], 8
jae 0x471c06
mov al, byte [edi + 0x19]
lea ecx, [edi + 0x94]
xor edx, edx
mov byte [esp + 0x33], al
test al, al
je 0x471bcc
nop word [eax + eax]
mov esi, dword [esp + 0x1c]
cmp dword [ecx + 0xc], esi
mov esi, dword [esp + 0x3c]
je 0x471be0
movzx eax, al
inc edx
add ecx, 0x14
cmp edx, eax
mov al, byte [esp + 0x33]
jl 0x471bb0
movzx eax, byte [edi + 0x13]
mov ecx, dword [esp + 0x1c]
mov dword [edi + eax*4 + 0x15c], ecx
inc byte [edi + 0x13]
jmp 0x471c06
mov byte [ecx + 6], 1
jmp 0x471c06
push edx
mov edx, eax
mov ecx, edi
call fcn.00451160
mov edx, dword [esp + 0x5c]
add esp, 4
cmp edx, dword [edi + 0x1c]
jle 0x471c06
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x1c], edx
mov dword [edi + 0x20], eax
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 0x14]
inc ecx
mov dword [esp + 8], eax
mov dword [esp + 0x14], ecx
test eax, eax
jne 0x4710b0
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x471cbb
mov ecx, dword [esi + 0x88]
lea edi, [eax + 1]
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x471c5d
push 0
push edi
push 0
mov edx, 0xd
mov ecx, esi
call fcn.00434530
add esp, 0xc
jmp 0x471c8f
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 0x471ca0
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x49], 0
je 0x471caf
mov eax, 0x4dee30
jmp 0x471cb8
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.004ac4d4
mov esp, ebp
pop ebp
ret