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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xd8
xor eax, eax
mov dword [esp + 0x90], edx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x64], eax
or esi, 0xffffffff
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], eax
xorps xmm0, xmm0
mov dword [esp + 0x68], eax
cmp dword [edi + 0x40], 0
mov dword [esp + 0x8c], eax
mov byte [esp + 0x1a], al
mov dword [esp + 0x5c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x9c], eax
mov eax, dword [edi]
mov dword [esp + 0x10], edi
mov dword [esp + 0x60], 0
mov dword [esp + 0x58], esi
mov byte [esp + 0x27], 1
mov dword [esp + 0x54], eax
movaps xmmword [esp + 0xa0], xmm0
mov dword [esp + 0xb0], 0
jne 0x1005124a
cmp byte [eax + 0x40], 0
jne 0x1005124a
mov ecx, dword [ebp + 8]
mov dword [esp + 0x4c], ecx
test ecx, ecx
je 0x1004f3f9
test byte [ecx + 6], 0x80
je 0x1004f3f9
cmp dword [ecx + 0x34], 0
jne 0x1004f3f9
mov edx, dword [ecx]
mov dword [esp + 0x5c], edx
mov edx, ecx
mov dword [ecx], 0
mov ecx, eax
call fcn.1005bf20
mov dword [esp + 0x4c], 0
mov edx, dword [esp + 0x98]
cmp dword [edx + 0x10], 0
je 0x10051251
mov ecx, edi
call fcn.10046e00
mov dword [esp + 0x14], eax
test eax, eax
je 0x10051251
mov edx, dword [eax + 0x44]
mov esi, 0xfff0bdc0
mov eax, dword [esp + 0x54]
mov dword [esp + 0x20], esi
test edx, edx
je 0x1004f458
mov ecx, dword [eax + 0x14]
xor esi, esi
mov dword [esp + 0x20], esi
test ecx, ecx
jle 0x1004f458
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], edx
je 0x1004f450
inc esi
add eax, 0x10
cmp esi, ecx
jl 0x1004f444
mov eax, dword [esp + 0x54]
mov dword [esp + 0x20], esi
mov eax, dword [eax + 0x10]
mov ecx, esi
mov esi, dword [esp + 0x14]
mov edx, 0x12
shl ecx, 4
mov dword [esp + 0x2c], ecx
push dword [ecx + eax]
mov ecx, edi
push 0
push dword [esi]
call fcn.1003e640
add esp, 0xc
test eax, eax
jne 0x10051251
mov al, byte [esi + 0x2c]
xor edx, edx
mov byte [esp + 0x53], al
mov eax, dword [edi]
mov dword [esp + 0x6c], 0
test dword [eax + 0x18], 0x800000
je 0x1004f4ad
mov edx, esi
mov ecx, edi
call fcn.10067110
mov edx, eax
xor esi, esi
mov ecx, edx
test edx, edx
je 0x1004f4cc
cmp byte [ecx + 8], 0x6c
jne 0x1004f4c1
movzx eax, byte [ecx + 9]
or esi, eax
mov ecx, dword [ecx + 0x20]
test ecx, ecx
jne 0x1004f4b5
mov dword [esp + 0x6c], esi
xor eax, eax
test esi, esi
cmovne eax, edx
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x14]
mov edx, eax
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x90], ecx
mov ecx, edi
call fcn.10041f90
test eax, eax
jne 0x10051251
mov edx, dword [esp + 0x14]
mov ecx, edi
push esi
call fcn.10046e90
add esp, 4
test eax, eax
jne 0x10051251
mov ecx, edi
call fcn.1005f210
mov edi, eax
mov dword [esp + 0x70], edi
test edi, edi
je 0x10051251
mov ecx, dword [esp + 0x10]
cmp byte [ecx + 0x12], 0
jne 0x1004f533
or dword [edi + 0x58], 0x10
cmp dword [esp + 0x4c], 0
jne 0x1004f549
cmp dword [esp + 0x84], 0
mov byte [esp + 0x1b], 0
je 0x1004f54e
mov byte [esp + 0x1b], 1
mov eax, dword [ecx + 0x198]
mov esi, ecx
mov ecx, dword [esp + 0x20]
test eax, eax
cmovne esi, eax
mov eax, 1
shl eax, cl
mov edx, dword [esi + 0x14c]
test edx, eax
jne 0x1004f5a3
mov eax, dword [esi]
bts edx, ecx
mov ecx, dword [esp + 0x2c]
mov dword [esi + 0x14c], edx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx + 0xc]
mov ecx, dword [esp + 0x20]
mov eax, dword [eax]
mov dword [esi + ecx*4 + 0x150], eax
cmp ecx, 1
jne 0x1004f5a3
mov ecx, esi
call fcn.10045430
mov ecx, dword [esp + 0x20]
mov eax, dword [esi + 0x148]
bts eax, ecx
mov dword [esi + 0x148], eax
mov al, byte [esp + 0x1b]
or byte [esi + 0x14], al
cmp dword [ebp + 0xc], 0
mov esi, dword [esp + 0x14]
jne 0x1004f5e5
push ecx
push dword [ebp + 0x10]
mov ecx, dword [esp + 0x18]
mov edx, esi
push dword [esp + 0x54]
call fcn.100529e0
add esp, 0xc
test eax, eax
jne 0x1005118e
mov ecx, dword [esp + 0x20]
mov edx, ecx
mov ecx, dword [esp + 0x10]
push esi
call fcn.1004ec00
mov edx, dword [esp + 0x14]
add esp, 4
mov dword [esp + 0x7c], eax
mov ecx, dword [edx + 0x48]
lea eax, [ecx + 1]
mov dword [esp + 0x74], eax
mov dword [esp + 0x3c], eax
movsx eax, word [esi + 0x26]
inc eax
add eax, ecx
mov dword [edx + 0x48], eax
test byte [esi + 0x2c], 0x10
je 0x1004f629
mov ecx, dword [esp + 0x74]
inc ecx
inc eax
mov dword [esp + 0x3c], ecx
mov dword [edx + 0x48], eax
jmp 0x1004f62d
mov ecx, dword [esp + 0x3c]
cmp dword [ebp + 0xc], 0
lea eax, [ecx + 1]
mov dword [esp + 0x88], eax
je 0x1004f7a0
mov edx, dword [ebp + 0xc]
xor ecx, ecx
mov eax, dword [edx + 4]
test eax, eax
jle 0x1004f662
nop dword [eax]
mov eax, dword [edx]
mov dword [eax + ecx*8 + 4], 0xffffffff
inc ecx
mov eax, dword [edx + 4]
cmp ecx, eax
jl 0x1004f650
xor edx, edx
mov dword [esp + 0x28], edx
test eax, eax
jle 0x1004f79c
movzx eax, word [esi + 0x26]
cwde
xor esi, esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x2c], eax
test eax, eax
jle 0x1004f747
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov ecx, dword [eax + edx*8]
lea eax, [eax + edx*8]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x78], ecx
mov eax, dword [eax + 4]
mov dword [esp + 0x30], eax
mov edx, dword [eax]
mov al, byte [ecx]
mov byte [esp + 0x1b], al
test al, al
je 0x1004f6de
mov esi, ecx
sub esi, edx
movzx ecx, byte [edx]
mov byte [esp + 0x1b], al
movzx eax, al
mov al, byte [eax + 0x100dc190]
cmp al, byte [ecx + 0x100dc190]
jne 0x1004f6da
mov al, byte [edx + esi + 1]
inc edx
mov byte [esp + 0x1b], al
test al, al
jne 0x1004f6b5
mov esi, dword [esp + 0x44]
movzx eax, byte [edx]
movzx ecx, byte [eax + 0x100dc190]
movzx eax, byte [esp + 0x1b]
movzx eax, byte [eax + 0x100dc190]
sub eax, ecx
je 0x1004f718
mov eax, dword [esp + 0x30]
inc esi
mov ecx, dword [esp + 0x78]
add eax, 0x18
mov dword [esp + 0x44], esi
mov dword [esp + 0x30], eax
cmp esi, dword [esp + 0x2c]
jl 0x1004f6a5
mov edx, dword [esp + 0x28]
jmp 0x1004f747
mov eax, dword [esp + 0x1c]
xor ecx, ecx
mov edx, dword [esp + 0x28]
cmp edx, esi
mov dword [eax + 4], esi
movzx eax, byte [esp + 0x27]
cmove ecx, eax
mov eax, dword [esp + 0x14]
mov byte [esp + 0x27], cl
movsx eax, word [eax + 0x24]
cmp esi, eax
jne 0x1004f747
mov dword [esp + 0x58], edx
mov byte [esp + 0x27], cl
mov eax, dword [esp + 0x14]
movzx eax, word [eax + 0x26]
cwde
cmp esi, eax
jl 0x1004f783
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov esi, dword [eax + edx*8]
mov ecx, esi
call fcn.10035200
test eax, eax
je 0x1004f941
test byte [esp + 0x53], 0x20
jne 0x1004f941
mov edx, dword [esp + 0x28]
mov dword [esp + 0x58], edx
mov byte [esp + 0x27], 0
mov ecx, dword [esp + 0x14]
inc edx
mov dword [esp + 0x28], edx
movzx eax, word [ecx + 0x26]
mov ecx, dword [ebp + 0xc]
cmp edx, dword [ecx + 4]
jl 0x1004f674
mov edx, dword [esp + 0x10]
cmp dword [esp + 0x4c], 0
je 0x1004fd9e
inc dword [edx + 0x48]
mov esi, dword [edi + 0x20]
mov eax, dword [edx + 0x48]
mov dword [esp + 0x30], eax
lea eax, [esi + 1]
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0x18]
cmp dword [eax + 0x54], esi
jg 0x1004f7d2
mov ecx, edi
call fcn.10021250
test eax, eax
jne 0x1004f805
mov eax, dword [edi + 4]
lea ecx, [esi + esi*4]
inc dword [edi + 0x20]
mov edx, dword [esp + 0x30]
mov dword [eax + ecx*4 + 4], edx
lea edx, [esi + 1]
mov word [eax + ecx*4], 0x14
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xa4], eax
xor eax, eax
cmp byte [esp + 0x27], al
mov word [esp + 0xa0], 0xd
cmovne eax, dword [esp + 0x88]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x14]
movsx eax, word [eax + 0x26]
mov dword [esp + 0xac], eax
lea eax, [esp + 0xa0]
push eax
call fcn.10064660
mov ecx, dword [esp + 0xac]
add esp, 4
mov dword [esp + 0x80], ecx
test eax, eax
jne 0x10051251
mov eax, dword [esp + 0x54]
cmp byte [eax + 0x40], 0
jne 0x10051251
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x1004f895
mov ecx, edi
call fcn.10021250
test eax, eax
jne 0x1004f8cc
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x30]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x15
mov byte [eax + ecx*4 + 3], 0
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 + 0x2c]
mov edx, dword [edi + 0x20]
dec eax
cmp edx, eax
jbe 0x1004f8e5
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [edi + 0x20]
cmp dword [esp + 0x84], 0
lea ecx, [edx - 1]
mov eax, dword [edi + 0x18]
mov dword [eax + 0x58], ecx
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [esp + 0x34], eax
jne 0x1004fa85
mov esi, dword [esp + 0x10]
mov ecx, esi
call fcn.1005f210
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x30], eax
test byte [ecx + 0x2c], 0x10
je 0x1004f966
mov edx, dword [ecx + 0x3c]
test edx, edx
je 0x1004f968
mov eax, dword [esi]
nop word [eax + eax]
cmp dword [edx], eax
je 0x1004f93b
mov edx, dword [edx + 0x18]
test edx, edx
jne 0x1004f930
mov eax, dword [esp + 0x30]
jmp 0x1004f968
push esi
mov esi, dword [esp + 0x14]
push 0
push dword [esp + 0xa0]
push 0x100d8bc8
push esi
call fcn.10007210
add esp, 0x14
mov byte [esi + 0x11], 1
jmp 0x10051251
xor edx, edx
mov esi, 1
cmp dword [eax + 0x20], esi
jle 0x1004fe25
mov eax, dword [eax]
mov al, byte [eax + 0x40]
mov byte [esp + 0x1b], al
nop
test al, al
je 0x1004f98b
mov eax, 0x100e6748
jmp 0x1004f998
mov eax, dword [esp + 0x30]
lea ecx, [esi + esi*4]
mov eax, dword [eax + 4]
lea eax, [eax + ecx*4]
mov cl, byte [eax]
cmp cl, 0x36
jne 0x1004f9d2
mov ecx, dword [esp + 0x20]
cmp dword [eax + 0xc], ecx
jne 0x1004f9e0
mov ecx, dword [eax + 8]
mov eax, dword [esp + 0x14]
cmp ecx, dword [eax + 0x20]
je 0x1004fa85
mov eax, dword [eax + 8]
test eax, eax
je 0x1004f9e0
nop
cmp ecx, dword [eax + 0x2c]
je 0x1004fa85
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x1004f9c0
jmp 0x1004f9e0
cmp cl, 0x93
jne 0x1004f9e0
cmp dword [eax + 0x10], edx
je 0x1004fa85
mov eax, dword [esp + 0x30]
inc esi
cmp esi, dword [eax + 0x20]
mov al, byte [esp + 0x1b]
jl 0x1004f980
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
cmp dword [ebp + 0xc], 0
jne 0x1004fa08
test eax, eax
jle 0x1004fa08
movsx esi, word [ecx + 0x24]
mov dword [esp + 0x58], esi
test byte [ecx + 0x2c], 0x10
je 0x1004fe6f
movsx eax, word [ecx + 0x26]
xor esi, esi
xor ecx, ecx
mov dword [esp + 0x30], esi
cmp eax, 2
jl 0x1004fe2e
mov ecx, dword [esp + 0x14]
lea edx, [eax - 2]
shr edx, 1
mov ecx, dword [ecx + 4]
mov dword [esp + 0x78], ecx
add ecx, 0x2f
inc edx
lea eax, [edx + edx]
mov dword [esp + 0x2c], eax
movzx eax, byte [ecx - 0x18]
lea ecx, [ecx + 0x30]
shr eax, 1
and eax, 1
add esi, eax
movzx eax, byte [ecx - 0x30]
shr eax, 1
and eax, 1
add dword [esp + 0x30], eax
sub edx, 1
jne 0x1004fa42
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
movsx eax, word [edx + 0x26]
cmp ecx, eax
jl 0x1004fe54
mov eax, dword [esp + 0x30]
xor edx, edx
add eax, esi
mov edx, eax
jmp 0x1004fe71
mov edx, dword [esp + 0x10]
mov byte [esp + 0x1a], 1
mov eax, dword [edx + 0x44]
mov cl, byte [edx + 0x13]
mov dword [esp + 0x48], eax
inc eax
mov dword [edx + 0x44], eax
test cl, cl
jne 0x1004fab6
inc dword [edx + 0x48]
mov eax, dword [edx + 0x48]
inc dword [edx + 0x48]
mov edx, dword [edx + 0x48]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], edx
jmp 0x1004fae5
sub cl, 1
movzx eax, cl
mov byte [edx + 0x13], cl
mov eax, dword [edx + eax*4 + 0x18]
mov dword [esp + 0x20], eax
jne 0x1004fad5
inc dword [edx + 0x48]
mov edx, dword [edx + 0x48]
mov dword [esp + 0x1c], edx
jmp 0x1004fae5
dec cl
movzx eax, cl
mov byte [edx + 0x13], cl
mov eax, dword [edx + eax*4 + 0x18]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x1004fb00
mov ecx, edi
call fcn.10021250
test eax, eax
jne 0x1004fb37
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x48]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x34]
mov word [eax + ecx*4], 0x39
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi + 0x18]
mov edx, dword [edi + 0x20]
mov ecx, edx
mov esi, dword [esp + 0xa4]
mov dword [esp + 0x28], edx
cmp dword [eax + 0x54], edx
jg 0x1004fb6b
mov ecx, edi
call fcn.10021250
test eax, eax
je 0x1004fb64
mov dword [esp + 0x28], 1
jmp 0x1004fb9e
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x28]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x16
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x1004fbb9
mov ecx, edi
call fcn.10021250
test eax, eax
jne 0x1004fbf3
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x80]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x34]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x20]
mov word [eax + ecx*4], 0x31
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x1004fc0e
mov ecx, edi
call fcn.10021250
test eax, eax
jne 0x1004fc45
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x48]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x1c]
mov word [eax + ecx*4], 0x4a
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x1004fc60
mov ecx, edi
call fcn.10021250
test eax, eax
jne 0x1004fc97
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x48]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x1c]
mov word [eax + ecx*4], 0x4b
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x1004fcb2
mov ecx, edi
call fcn.10021250
test eax, eax
jne 0x1004fce9
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x28]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
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 edx, dword [edi + 0x20]
mov eax, dword [esp + 0x28]
cmp edx, eax
jbe 0x1004fd01
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [edi + 0x20]
mov eax, dword [edi + 0x18]
lea ecx, [edx - 1]
mov esi, dword [esp + 0x20]
mov dword [eax + 0x58], ecx
test esi, esi
je 0x1004fd45
mov eax, dword [esp + 0x10]
mov dl, byte [eax + 0x13]
cmp dl, 8
jae 0x1004fd91
xor ecx, ecx
add eax, 0x74
cmp dword [eax + 0xc], esi
je 0x1004fd41
inc ecx
add eax, 0x14
cmp ecx, 0xa
jl 0x1004fd23
movzx eax, dl
mov edx, dword [esp + 0x10]
mov dword [edx + eax*4 + 0x18], esi
inc byte [edx + 0x13]
jmp 0x1004fd49
mov byte [eax + 6], 1
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x1004f9ee
mov dl, byte [edx + 0x13]
cmp dl, 8
jae 0x1004f9ee
mov eax, dword [esp + 0x10]
xor ecx, ecx
add eax, 0x74
nop word [eax + eax]
cmp dword [eax + 0xc], esi
je 0x1004fd95
inc ecx
add eax, 0x14
cmp ecx, 0xa
jl 0x1004fd70
mov ecx, dword [esp + 0x10]
movzx eax, dl
mov dword [ecx + eax*4 + 0x18], esi
inc byte [ecx + 0x13]
jmp 0x1004f9ee
mov edx, eax
jmp 0x1004fd49
mov byte [eax + 6], 1
jmp 0x1004f9ee
mov ecx, dword [esp + 0x5c]
xorps xmm0, xmm0
movaps xmmword [esp + 0xc0], xmm0
movaps xmmword [esp + 0xd0], xmm0
mov dword [esp + 0xc0], edx
mov dword [esp + 0x48], 0xffffffff
test ecx, ecx
je 0x1004fdcc
mov eax, dword [ecx]
jmp 0x1004fdce
xor eax, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x44], 0
test eax, eax
jle 0x1004f9f2
xor esi, esi
nop dword [eax]
nop dword [eax + eax]
mov edx, dword [ecx + 4]
lea ecx, [esp + 0xc0]
mov edx, dword [edx + esi]
call fcn.10033000
test eax, eax
jne 0x10051251
mov eax, dword [esp + 0x44]
add esi, 0x18
mov ecx, dword [esp + 0x5c]
inc eax
mov dword [esp + 0x44], eax
cmp eax, dword [esp + 0x34]
jl 0x1004fdf0
jmp 0x1004f9ee
mov eax, dword [esp + 0x34]
jmp 0x1004f9f6
test eax, eax
jle 0x1004fa76
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 4]
lea eax, [ecx + ecx*2]
movzx edx, byte [edx + eax*8 + 0x17]
mov eax, dword [esp + 0x30]
shr edx, 1
add eax, esi
and edx, 1
add edx, eax
jmp 0x1004fe71
mov edx, dword [esp + 0x78]
lea eax, [ecx + ecx*2]
movzx edx, byte [edx + eax*8 + 0x17]
mov eax, dword [esp + 0x30]
shr edx, 1
add eax, esi
and edx, 1
add edx, eax
jmp 0x1004fe71
xor edx, edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x34]
test eax, eax
jne 0x1004feaf
test ecx, ecx
je 0x1004fece
mov eax, dword [esp + 0x14]
movsx eax, word [eax + 0x26]
sub eax, edx
cmp ecx, eax
je 0x1004fece
push ecx
push eax
push 0
push dword [esp + 0xa4]
push 0x100d8be8
push dword [esp + 0x24]
call fcn.10007210
add esp, 0x18
jmp 0x10051251
mov eax, dword [eax + 4]
cmp ecx, eax
je 0x1004fece
push eax
push ecx
push 0x100d8c1c
push dword [esp + 0x1c]
call fcn.10007210
add esp, 0x10
jmp 0x10051251
mov eax, dword [esp + 0x54]
test byte [eax + 0x18], 0x80
je 0x1004ff36
mov eax, dword [esp + 0x10]
inc dword [eax + 0x48]
mov eax, dword [eax + 0x48]
mov esi, dword [edi + 0x20]
mov dword [esp + 0x94], eax
mov eax, dword [edi + 0x18]
cmp dword [eax + 0x54], esi
jg 0x1004feff
mov ecx, edi
call fcn.10021250
test eax, eax
jne 0x1004ff36
mov eax, dword [edi + 4]
lea ecx, [esi + esi*4]
inc dword [edi + 0x20]
mov edx, dword [esp + 0x94]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
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
cmp dword [esp + 0x90], 0
jne 0x1004ffad
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x40]
mov ecx, dword [esp + 0x10]
push eax
lea eax, [esp + 0x64]
push eax
push 0
push 0xffffffffffffffff
push 0x37
call fcn.100526d0
mov ecx, dword [esp + 0x68]
add esp, 0x14
mov esi, eax
push 0
lea eax, [esi*4 + 4]
push eax
call fcn.100049f0
mov edx, eax
add esp, 8
mov dword [esp + 0x9c], edx
test edx, edx
je 0x10051251
xor ecx, ecx
test esi, esi
jle 0x1004ffa5
mov edi, dword [esp + 0x10]
inc dword [edi + 0x48]
mov eax, dword [edi + 0x48]
mov dword [edx + ecx*4], eax
inc ecx
cmp ecx, esi
jl 0x1004ff93
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x64], eax
cmp byte [esp + 0x1a], 0
je 0x1005002d
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
mov ecx, esi
mov dword [esp + 0x68], esi
cmp dword [eax + 0x54], esi
jg 0x1004ffea
mov ecx, edi
call fcn.10021250
test eax, eax
je 0x1004ffe7
mov esi, dword [edi + 0x20]
mov dword [esp + 0x68], 1
mov dword [esp + 0x8c], esi
jmp 0x100500a3
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x48]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x6c
mov byte [eax + ecx*4 + 3], 0
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 esi, dword [edi + 0x20]
mov dword [esp + 0x8c], esi
jmp 0x100500a3
cmp dword [esp + 0x4c], 0
je 0x100500a3
mov eax, dword [edi + 0x18]
mov edx, dword [edi + 0x20]
mov ecx, edx
mov esi, dword [esp + 0xa4]
mov dword [esp + 0x68], edx
cmp dword [eax + 0x54], edx
jg 0x10050069
mov ecx, edi
call fcn.10021250
test eax, eax
je 0x10050062
mov edx, 1
mov dword [esp + 0x68], edx
jmp 0x1005009c
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x68]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x16
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov dword [esp + 0x8c], edx
mov ecx, edi
call fcn.10021480
test byte [esp + 0x6c], 1
mov dword [esp + 0x30], eax
je 0x1005049c
mov eax, dword [esp + 0x14]
movsx ecx, word [eax + 0x26]
mov eax, dword [esp + 0x10]
inc ecx
mov edx, dword [eax + 0x38]
mov esi, dword [eax + 0x3c]
mov dword [esp + 0x1c], esi
cmp ecx, edx
jg 0x100500eb
mov edi, dword [esp + 0x10]
lea eax, [ecx + esi]
sub edx, ecx
mov ecx, edi
mov dword [edi + 0x3c], eax
mov edi, dword [esp + 0x70]
mov dword [ecx + 0x38], edx
jmp 0x100500fe
mov eax, dword [eax + 0x48]
lea esi, [eax + 1]
add eax, ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], esi
mov dword [ecx + 0x48], eax
mov eax, dword [esp + 0x58]
test eax, eax
jns 0x10050170
mov esi, dword [edi + 0x20]
lea eax, [edi + 0x18]
mov dword [esp + 0x6c], eax
lea edx, [edi + 0x20]
mov eax, dword [eax]
mov ecx, esi
mov dword [esp + 0x28], edx
cmp dword [eax + 0x54], esi
jg 0x10050135
mov ecx, edi
call fcn.10021250
test eax, eax
jne 0x10050337
mov ecx, dword [edi + 0x20]
lea edx, [edi + 0x20]
lea eax, [ecx + 1]
mov dword [edx], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov esi, dword [esp + 0x1c]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0xffffffff
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x1005033b
cmp byte [esp + 0x1a], 0
je 0x100501dd
mov esi, dword [edi + 0x20]
lea eax, [edi + 0x18]
mov dword [esp + 0x6c], eax
lea edx, [edi + 0x20]
mov eax, dword [eax]
mov ecx, esi
mov dword [esp + 0x28], edx
cmp dword [eax + 0x54], esi
jg 0x100501a2
mov ecx, edi
call fcn.10021250
lea edx, [edi + 0x20]
test eax, eax
jne 0x100501d8
mov ecx, dword [edi + 0x20]
lea eax, [ecx + 1]
mov dword [edx], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x58]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x1c]
mov word [eax + ecx*4], 0x2f
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
lea eax, [edi + 0x18]
jmp 0x10050201
mov edx, dword [esp + 0x5c]
lea eax, [eax + eax*2]
push esi
mov edx, dword [edx + 4]
mov edx, dword [edx + eax*8]
call fcn.10038df0
lea edx, [edi + 0x20]
add esp, 4
lea eax, [edi + 0x18]
mov dword [esp + 0x28], edx
mov dword [esp + 0x6c], eax
mov eax, dword [eax]
mov esi, dword [edx]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x10050224
mov ecx, edi
call fcn.10021250
lea edx, [edi + 0x20]
test eax, eax
je 0x10050221
mov esi, 1
jmp 0x1005025e
mov ecx, dword [edi + 0x20]
lea eax, [ecx + 1]
mov dword [edx], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov edi, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x70]
mov word [eax + ecx*4], 0x4d
mov byte [eax + ecx*4 + 3], 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 [edi + 0x18]
mov ecx, dword [edx]
mov edx, ecx
mov dword [esp + 0x2c], ecx
cmp dword [eax + 0x54], ecx
jg 0x10050280
mov ecx, edi
call fcn.10021250
test eax, eax
jne 0x100502b7
mov edx, dword [edi + 0x20]
mov ecx, dword [esp + 0x2c]
lea eax, [edx + 1]
mov edx, dword [esp + 0x1c]
mov dword [edi + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0xffffffff
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [edi + 0x20]
cmp edx, esi
jbe 0x100502cb
mov eax, dword [edi + 4]
lea ecx, [esi + esi*4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [edi + 0x20]
mov eax, dword [edi + 0x18]
lea ecx, [edx - 1]
lea edx, [edi + 0x20]
mov dword [eax + 0x58], ecx
mov eax, dword [edi + 0x18]
mov esi, dword [edx]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x100502f4
mov ecx, edi
call fcn.10021250
test eax, eax
jne 0x10050337
mov ecx, dword [edi + 0x20]
lea edx, [edi + 0x20]
lea eax, [ecx + 1]
mov dword [esp + 0x28], edx
mov dword [edx], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov esi, dword [esp + 0x1c]
mov word [eax + ecx*4], 0x26
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
lea eax, [edi + 0x18]
mov dword [esp + 0x6c], eax
jmp 0x1005033b
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x2c], 0
movzx eax, word [edx + 0x26]
mov ecx, eax
cmp word [esp + 0x2c], ax
jge 0x10050420
mov eax, esi
lea edx, [esi + 1]
xor ecx, ecx
mov dword [esp + 0x20], edx
not eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], eax
nop dword [eax]
cmp dword [ebp + 0xc], 0
jne 0x1005037b
lea esi, [eax + edx]
jmp 0x100503b1
mov edx, dword [ebp + 0xc]
xor esi, esi
mov edx, dword [edx + 4]
test edx, edx
jle 0x100503ad
mov ecx, dword [ebp + 0xc]
mov edi, dword [esp + 0x20]
mov ecx, dword [ecx]
add ecx, 4
add eax, edi
cmp dword [ecx], eax
je 0x100503a5
mov eax, dword [esp + 0x44]
inc esi
add ecx, 8
cmp esi, edx
jl 0x10050393
mov edi, dword [esp + 0x70]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x20]
cmp byte [esp + 0x1a], 0
jne 0x100503bf
cmp dword [esp + 0x5c], 0
je 0x100503d3
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x100505ad
cmp esi, dword [eax + 4]
jl 0x100505ad
mov eax, dword [esp + 0x14]
push edx
mov edx, dword [eax + 4]
mov edx, dword [edx + ecx + 4]
mov ecx, dword [esp + 0x14]
call fcn.10038df0
add esp, 4
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
inc edx
mov ecx, dword [esp + 0x44]
add dword [esp + 0x40], 0x18
add ecx, edx
mov dword [esp + 0x20], edx
movzx esi, word [eax + 0x26]
movsx eax, si
cmp ecx, eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
jl 0x10050370
mov edx, dword [esp + 0x14]
mov ecx, esi
cmp dword [esp + 0x90], 0
movzx eax, cx
jne 0x10050445
mov eax, dword [esp + 0x1c]
mov ecx, edi
inc eax
push eax
call fcn.1004ead0
mov edx, dword [esp + 0x18]
add esp, 4
movzx eax, word [edx + 0x26]
push dword [esp + 0x30]
mov ecx, dword [esp + 0x20]
push dword [ebp + 0x10]
cwde
sub ecx, eax
dec ecx
push ecx
mov ecx, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x94]
push 1
push 0
push 0x6c
call fcn.10068b20
mov eax, dword [esp + 0x30]
add esp, 0x1c
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
movsx esi, word [eax + 0x26]
inc esi
push esi
call fcn.10036f40
mov ecx, dword [esp + 0x14]
add esp, 4
cmp esi, dword [ecx + 0x38]
jle 0x1005049c
mov eax, dword [esp + 0x1c]
mov dword [ecx + 0x38], esi
mov dword [ecx + 0x3c], eax
cmp dword [esp + 0x90], 0
jne 0x10050ea9
mov esi, dword [esp + 0x14]
test byte [esi + 0x2c], 0x10
je 0x1005050a
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x100504cf
mov ecx, edi
call fcn.10021250
test eax, eax
jne 0x10050506
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x74]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x1c
mov byte [eax + ecx*4 + 3], 0
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 esi, dword [esp + 0x14]
mov eax, dword [esp + 0x58]
test eax, eax
js 0x100508f9
cmp byte [esp + 0x1a], 0
je 0x100506cc
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x1005053c
mov ecx, edi
call fcn.10021250
test eax, eax
jne 0x10050573
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x48]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov esi, dword [esp + 0x58]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x3c]
mov word [eax + ecx*4], 0x2f
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x14]
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
test byte [ecx + 0x2c], 0x10
mov ecx, esi
mov eax, dword [eax + 0x54]
jne 0x10050863
cmp eax, esi
jg 0x100507b3
mov ecx, edi
call fcn.10021250
test eax, eax
je 0x100507b0
mov esi, 1
jmp 0x100507ea
cmp byte [esp + 0x1a], 0
je 0x1005061c
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x2c], ecx
mov eax, dword [eax]
cmp dword [eax + 0x54], ecx
jg 0x100505e1
mov ecx, edi
call fcn.10021250
test eax, eax
jne 0x100503eb
mov eax, dword [edi + 0x20]
mov ecx, dword [esp + 0x2c]
jmp 0x100505e3
mov eax, ecx
mov edx, dword [esp + 0x28]
lea ecx, [ecx + ecx*4]
inc eax
mov dword [edx], eax
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x48]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x20]
mov word [eax + ecx*4], 0x2f
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x100503ef
mov eax, dword [esp + 0x5c]
lea ecx, [esi + esi*2]
push edx
mov eax, dword [eax + 4]
mov esi, dword [eax + ecx*8]
mov edx, esi
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 8]
mov dword [esp + 0x7c], eax
call fcn.10038df0
mov eax, dword [esp + 0x14]
add esp, 4
mov edx, dword [esp + 0x78]
inc dword [eax + 0x48]
mov eax, dword [eax + 0x48]
mov ecx, dword [edx + 0x20]
mov dword [esp + 0x2c], eax
mov eax, dword [edx + 0x18]
mov dword [esp + 0x38], ecx
cmp dword [eax + 0x54], ecx
jg 0x10050673
mov ecx, edx
call fcn.10021250
test eax, eax
jne 0x100506ad
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x38]
mov eax, dword [edx + 4]
lea ecx, [ecx + ecx*4]
inc dword [edx + 0x20]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x70]
mov word [eax + ecx*4], 0x21
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x100506b1
mov edx, dword [esp + 0x20]
mov al, byte [esi]
and dword [esi + 4], 0xffffefff
mov byte [esi + 0x26], al
mov eax, dword [esp + 0x2c]
mov byte [esi], 0x9f
mov dword [esi + 0x1c], eax
jmp 0x100503ef
cmp dword [esp + 0x4c], 0
je 0x10050735
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x100506f2
mov ecx, edi
call fcn.10021250
test eax, eax
jne 0x10050573
mov ecx, dword [edi + 0x20]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x21
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x80]
mov dword [ecx + 0x10], 0
add eax, dword [esp + 0x58]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [ecx + 8], eax
jmp 0x10050573
mov ecx, dword [esp + 0x5c]
lea eax, [eax + eax*2]
push dword [esp + 0x3c]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x14]
mov edx, dword [edx + eax*8]
call fcn.10038df0
mov eax, dword [edi + 0x20]
add esp, 4
lea ecx, [eax + eax*4]
mov eax, dword [edi]
shl ecx, 2
cmp byte [eax + 0x40], 0
je 0x1005076a
mov eax, 0x100e6748
jmp 0x10050778
mov eax, dword [edi + 4]
add eax, 0xffffffec
add eax, ecx
je 0x10050573
cmp byte [eax], 0x1c
jne 0x10050573
test byte [esi + 0x2c], 0x10
jne 0x10050573
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x3c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x7c]
mov byte [eax], 0x4a
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov dword [esp + 0x28], 1
jmp 0x100509c4
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x3c]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x4d
mov byte [eax + ecx*4 + 3], 0
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 [edi + 0x18]
mov ecx, dword [edi + 0x20]
mov edx, ecx
mov dword [esp + 0x38], ecx
cmp dword [eax + 0x54], ecx
jg 0x1005080d
mov ecx, edi
call fcn.10021250
test eax, eax
jne 0x10050844
mov edx, dword [edi + 0x20]
mov ecx, dword [esp + 0x38]
lea eax, [edx + 1]
mov edx, dword [esp + 0x60]
mov dword [edi + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x3c]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x7c]
mov word [eax + ecx*4], 0x4a
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [edi + 0x20]
cmp edx, esi
jbe 0x10050858
mov eax, dword [edi + 4]
lea ecx, [esi + esi*4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [edi + 0x20]
mov eax, dword [edi + 0x18]
lea ecx, [edx - 1]
mov dword [eax + 0x58], ecx
jmp 0x100508ab
cmp eax, esi
jg 0x10050875
mov ecx, edi
call fcn.10021250
test eax, eax
jne 0x100508ab
mov ecx, dword [edi + 0x20]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x4c
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x3c]
mov dword [ecx + 0x10], 0
mov dword [ecx + 4], eax
lea eax, [esi + 2]
mov dword [ecx + 8], eax
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x100508d2
mov ecx, edi
mov dword [esp + 0x28], 0
call fcn.10021250
test eax, eax
jne 0x100509c4
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x3c]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x26
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
jmp 0x100509a7
test byte [esi + 0x2c], 0x10
jne 0x10050962
test byte [esp + 0x53], 0x20
jne 0x10050962
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x10050921
mov ecx, edi
call fcn.10021250
test eax, eax
jne 0x10050958
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x60]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x3c]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x7c]
mov word [eax + ecx*4], 0x4a
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov dword [esp + 0x28], 1
jmp 0x100509c4
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x10050985
mov ecx, edi
mov dword [esp + 0x28], 0
call fcn.10021250
test eax, eax
jne 0x100509c4
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x3c]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x1c
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0x10], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [esp + 0x28], 0
mov byte [eax + ecx*4 + 3], 0
cmp dword [esp + 0x7c], 0
jle 0x10050a24
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 8]
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x20]
mov dword [esp + 0x38], ecx
cmp dword [eax + 0x54], ecx
jg 0x100509f0
mov ecx, esi
call fcn.10021250
test eax, eax
jne 0x10050a24
mov ecx, dword [esp + 0x38]
mov eax, dword [esi + 4]
lea ecx, [ecx + ecx*4]
inc dword [esi + 0x20]
mov edx, dword [esp + 0x7c]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x3c]
mov word [eax + ecx*4], 0x88
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [esp + 0x14]
xor edx, edx
xor eax, eax
mov dword [esp + 0x40], 0
mov dword [esp + 0x1c], edx
cmp ax, word [esi + 0x26]
jge 0x10050d30
xor ecx, ecx
mov dword [esp + 0x44], ecx
nop dword [eax + eax]
mov eax, dword [esp + 0x88]
add eax, edx
mov dword [esp + 0x20], eax
movsx eax, word [esi + 0x24]
cmp edx, eax
jne 0x10050ac4
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x10050a88
mov ecx, edi
call fcn.10021250
mov edx, dword [esp + 0x1c]
test eax, eax
jne 0x10050d10
mov ecx, dword [edi + 0x20]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov esi, dword [esp + 0x20]
mov word [eax + ecx*4], 0x1d
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x10050d10
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x10050afe
mov eax, dword [esi + 4]
mov cl, byte [eax + ecx + 0x17]
mov eax, dword [esp + 0x40]
and cl, 2
je 0x10050aec
inc eax
or esi, 0xffffffff
test cl, cl
cmove eax, dword [esp + 0x40]
mov dword [esp + 0x40], eax
jmp 0x10050b1c
mov esi, edx
sub esi, eax
inc eax
test cl, cl
cmove eax, dword [esp + 0x40]
mov dword [esp + 0x40], eax
jmp 0x10050b1c
mov ecx, dword [eax + 4]
xor esi, esi
test ecx, ecx
jle 0x10050b27
mov eax, dword [eax]
add eax, 4
nop dword [eax]
cmp dword [eax], edx
je 0x10050b1c
inc esi
add eax, 8
cmp esi, ecx
jl 0x10050b10
test esi, esi
js 0x10050c3e
mov eax, dword [ebp + 0xc]
cmp dword [esp + 0x34], 0
je 0x10050c3e
test eax, eax
je 0x10050b3f
cmp esi, dword [eax + 4]
jge 0x10050c3e
cmp byte [esp + 0x1a], 0
je 0x10050ba5
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x20]
mov edx, ecx
mov dword [esp + 0x38], ecx
cmp dword [eax + 0x54], ecx
jg 0x10050b6d
mov ecx, edi
call fcn.10021250
test eax, eax
jne 0x10050d0c
mov edx, dword [edi + 0x20]
mov ecx, dword [esp + 0x38]
lea eax, [edx + 1]
mov edx, dword [esp + 0x48]
mov dword [edi + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 4]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x20]
mov word [eax + ecx*4], 0x2f
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x10050d0c
cmp dword [esp + 0x4c], 0
je 0x10050c28
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x88]
je 0x10050d10
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x20]
mov edx, ecx
mov dword [esp + 0x38], ecx
cmp dword [eax + 0x54], ecx
jg 0x10050be7
mov ecx, edi
call fcn.10021250
test eax, eax
jne 0x10050d0c
mov edx, dword [edi + 0x20]
mov ecx, dword [esp + 0x38]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x22
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x80]
add eax, esi
mov dword [ecx + 0x10], 0
mov esi, dword [esp + 0x20]
mov dword [ecx + 4], eax
mov dword [ecx + 8], esi
jmp 0x10050d0c
mov ecx, dword [esp + 0x5c]
lea eax, [esi + esi*2]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x10]
mov edx, dword [edx + eax*8]
jmp 0x10050d00
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x44]
mov eax, dword [eax + 4]
mov esi, dword [eax + esi + 4]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x38], esi
cmp byte [eax + 0x17], 0
je 0x10050cfc
xorps xmm0, xmm0
mov dword [esp + 0xd0], 0
mov edx, esi
movlpd qword [esp + 0xc8], xmm0
lea ecx, [esp + 0xc0]
mov dword [esp + 0xd4], 1
mov dword [esp + 0xc0], 0x10034f00
mov dword [esp + 0xc4], 0x10035000
call fcn.10031000
cmp dword [esp + 0xd4], 0
mov eax, dword [esp + 0x10]
je 0x10050cfc
mov edx, dword [esp + 0x38]
mov ecx, dword [eax]
mov esi, dword [eax + 0x13c]
push 0
push 0
call fcn.10034250
mov ecx, dword [esp + 0x18]
mov edx, esi
push eax
call fcn.10034cc0
add esp, 0xc
test eax, eax
je 0x10050cf0
mov ecx, dword [eax]
mov esi, dword [esp + 0x20]
lea edx, [ecx + ecx*2]
mov ecx, dword [eax + 4]
and dword [ecx + edx*8 - 8], 0xfffffffb
mov dword [ecx + edx*8 - 4], esi
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x13c], eax
jmp 0x10050d0c
mov edx, esi
mov ecx, eax
push dword [esp + 0x20]
call fcn.10038df0
add esp, 4
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
inc edx
mov ecx, dword [esp + 0x44]
add ecx, 0x18
mov dword [esp + 0x1c], edx
mov dword [esp + 0x44], ecx
movsx eax, word [esi + 0x26]
cmp edx, eax
jl 0x10050a50
test byte [esi + 0x2c], 0x10
je 0x10050e18
mov esi, dword [esi + 0x3c]
test esi, esi
je 0x10050d50
mov eax, dword [esp + 0x54]
cmp dword [esi], eax
je 0x10050d50
mov esi, dword [esi + 0x18]
test esi, esi
jne 0x10050d45
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
call fcn.1006cb20
mov ecx, dword [esp + 0x14]
mov edx, dword [edi + 0x20]
mov dword [esp + 0x38], edx
movsx eax, word [ecx + 0x26]
mov ecx, edx
add eax, 2
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0x18]
cmp dword [eax + 0x54], edx
jg 0x10050d96
mov ecx, edi
call fcn.10021250
test eax, eax
je 0x10050d8f
mov edx, 1
jmp 0x10050dd1
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x38]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 4]
mov edi, dword [esp + 0x2c]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x74]
mov dword [eax + ecx*4 + 0xc], edi
mov edi, dword [esp + 0x70]
mov word [eax + ecx*4], 0xf
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 0x10], 0
push 0xfffffffffffffff6
push esi
mov ecx, edi
call fcn.100219a0
mov edx, dword [edi + 4]
add esp, 8
test edx, edx
je 0x10050e00
mov eax, dword [ebp + 0x10]
mov esi, 2
movzx ecx, al
cmp eax, 0xa
mov eax, dword [edi + 0x20]
cmove ecx, esi
lea eax, [eax + eax*4]
mov byte [edx + eax*4 - 0x11], cl
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x198]
test eax, eax
cmovne ecx, eax
mov byte [ecx + 0x15], 1
jmp 0x10050ea9
mov edx, dword [esp + 0x64]
lea eax, [esp + 0x38]
push eax
push dword [esp + 0x34]
mov eax, dword [esp + 0x60]
push dword [ebp + 0x10]
shr eax, 0x1f
xor al, 1
movzx eax, al
push eax
push 0
push dword [esp + 0x88]
push edx
push dword [esp + 0x7c]
mov edx, esi
mov esi, dword [esp + 0x30]
push dword [esp + 0xbc]
mov ecx, esi
call fcn.100512f0
mov edx, dword [esp + 0x38]
add esp, 0x24
mov ecx, esi
push 0
push 0
push dword [esp + 0x7c]
push 0
call fcn.1004d470
mov edx, dword [esp + 0x24]
xor eax, eax
cmp dword [esp + 0x48], eax
mov ecx, esi
sete al
push eax
push dword [esp + 0x3c]
push 0
push dword [esp + 0xb8]
push dword [esp + 0x94]
push dword [esp + 0x88]
push dword [esp + 0x88]
call fcn.10052380
add esp, 0x2c
mov eax, dword [esp + 0x54]
test byte [eax + 0x18], 0x80
je 0x10050f08
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x10050ece
mov ecx, edi
call fcn.10021250
test eax, eax
jne 0x10050f08
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x94]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x25
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [esp + 0x84]
test esi, esi
je 0x10050f44
mov ecx, dword [esp + 0x14]
push dword [esp + 0x30]
mov edx, dword [esp + 0x8c]
push dword [ebp + 0x10]
movsx eax, word [ecx + 0x26]
sub edx, eax
sub edx, 2
push edx
push ecx
mov ecx, dword [esp + 0x20]
mov edx, esi
push 2
push 0
push 0x6c
call fcn.10068b20
add esp, 0x1c
mov esi, dword [edi + 0x18]
or ecx, 0xffffffff
sub ecx, dword [esp + 0x30]
js 0x10050f5d
mov edx, dword [esi + 0x70]
test edx, edx
je 0x10050f5d
mov eax, dword [edi + 0x20]
mov dword [edx + ecx*4], eax
mov eax, dword [edi + 0x20]
dec eax
cmp byte [esp + 0x1a], 0
mov dword [esi + 0x58], eax
je 0x10051035
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x10050f8a
mov ecx, edi
call fcn.10021250
test eax, eax
jne 0x10050fc4
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x48]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x8c]
mov word [eax + ecx*4], 9
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [edi + 0x20]
mov eax, dword [esp + 0x68]
cmp edx, eax
jbe 0x10050fdc
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [edi + 0x20]
mov eax, dword [edi + 0x18]
lea ecx, [edx - 1]
mov dword [eax + 0x58], ecx
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
cmp dword [eax + 0x54], esi
jg 0x10050fff
mov ecx, edi
call fcn.10021250
test eax, eax
jne 0x100510b2
mov eax, dword [edi + 4]
lea ecx, [esi + esi*4]
inc dword [edi + 0x20]
mov edx, dword [esp + 0x48]
mov word [eax + ecx*4], 0x3d
mov byte [eax + ecx*4 + 3], 0
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
jmp 0x100510b2
cmp dword [esp + 0x4c], 0
je 0x100510b2
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x10051057
mov ecx, edi
call fcn.10021250
test eax, eax
jne 0x10051091
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x8c]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
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 edx, dword [edi + 0x20]
mov eax, dword [esp + 0x68]
cmp edx, eax
jbe 0x100510a9
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [edi + 0x20]
mov eax, dword [edi + 0x18]
lea ecx, [edx - 1]
mov dword [eax + 0x58], ecx
mov eax, dword [esp + 0x14]
test byte [eax + 0x2c], 0x10
jne 0x1005118e
cmp dword [esp + 0x90], 0
jne 0x1005118e
mov eax, dword [esp + 0x60]
cmp eax, dword [esp + 0x64]
jge 0x10051122
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
cmp dword [eax + 0x54], esi
jg 0x100510ee
mov ecx, edi
call fcn.10021250
test eax, eax
jne 0x10051122
mov eax, dword [edi + 4]
lea ecx, [esi + esi*4]
inc dword [edi + 0x20]
mov edx, dword [esp + 0x60]
mov word [eax + ecx*4], 0x3d
mov byte [eax + ecx*4 + 3], 0
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 edx, dword [esp + 0x14]
mov eax, dword [edx + 8]
mov dword [esp + 0x2c], eax
test eax, eax
je 0x1005118e
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
cmp dword [eax + 0x54], esi
jg 0x10051147
mov ecx, edi
call fcn.10021250
test eax, eax
jne 0x1005117b
mov eax, dword [edi + 4]
lea ecx, [esi + esi*4]
inc dword [edi + 0x20]
mov edx, dword [esp + 0x64]
mov word [eax + ecx*4], 0x3d
mov byte [eax + ecx*4 + 3], 0
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 ecx, dword [esp + 0x2c]
inc dword [esp + 0x64]
mov ecx, dword [ecx + 0x14]
mov dword [esp + 0x2c], ecx
test ecx, ecx
jne 0x10051131
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x12], 0
jne 0x100511ac
cmp dword [eax + 0x19c], 0
jne 0x100511ac
mov ecx, eax
call fcn.1004f090
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x54]
test byte [ecx + 0x18], 0x80
je 0x10051251
cmp byte [eax + 0x12], 0
jne 0x10051251
cmp dword [eax + 0x19c], 0
jne 0x10051251
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
cmp dword [eax + 0x54], esi
jg 0x100511e7
mov ecx, edi
call fcn.10021250
test eax, eax
jne 0x1005121e
mov eax, dword [edi + 4]
lea ecx, [esi + esi*4]
inc dword [edi + 0x20]
mov edx, dword [esp + 0x94]
mov word [eax + ecx*4], 0x23
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, 1
mov ecx, edi
call fcn.10022a10
mov eax, dword [edi]
cmp byte [eax + 0x40], 0
jne 0x10051251
mov ecx, dword [edi + 0x10]
mov edx, 0x100d8c38
push 0
push 1
push 0xffffffffffffffff
call fcn.10020860
add esp, 0xc
jmp 0x10051251
mov eax, dword [ebp + 8]
mov dword [esp + 0x4c], eax
mov edi, dword [esp + 0x54]
mov ecx, edi
mov edx, dword [esp + 0x98]
call fcn.10044d90
mov edx, dword [esp + 0x5c]
mov ecx, edi
call fcn.10034d70
mov edx, dword [esp + 0x4c]
mov ecx, edi
call fcn.1005bf20
mov edx, dword [ebp + 0xc]
mov ecx, edi
call fcn.10044900
mov ecx, dword [esp + 0x9c]
test ecx, ecx
je 0x100512dd
test edi, edi
je 0x100512d4
cmp dword [edi + 0x208], 0
je 0x100512aa
mov edx, ecx
mov ecx, edi
call fcn.10004740
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp ecx, dword [edi + 0x114]
jb 0x100512d4
cmp ecx, dword [edi + 0x118]
jae 0x100512d4
mov eax, dword [edi + 0x110]
mov dword [ecx], eax
dec dword [edi + 0xfc]
mov dword [edi + 0x110], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push ecx
call fcn.100046a0
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret