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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x1c8
push esi
push edi
mov edi, ecx
mov dword [esp + 0xc], 0
xor ecx, ecx
mov dword [esp + 8], edi
mov dword [esp + 0x20], 0
mov dword [esp + 0xe4], 0
mov esi, dword [edi]
mov dword [esp + 0x10], esi
mov dword [esp + 0x2c], 0
mov dword [esp + 0x18], ecx
mov eax, dword [esi + 8]
mov dword [esp + 0x10c], ecx
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x49]
mov byte [esp + 0xe8], al
xor eax, eax
cmp dword [edi + 0x64], 7
mov dword [esp + 0x108], eax
mov dword [esp + 0x104], eax
je 0x4ce19a
mov dword [edi + 0x64], eax
mov dword [edi + 0x2c], eax
mov dword [esi + 0x198], eax
cmp dword [esi + 0xd8], eax
jne 0x4ce53f
mov edx, dword [edi + 0x60]
xorps xmm0, xmm0
movsd qword [esp + 0x130], xmm0
movsd xmm0, qword [0x550b78]
movsd qword [esp + 0x148], xmm0
movsd xmm0, qword [0x550b38]
movsd qword [esp + 0x158], xmm0
mov dword [esp + 0x1c], edx
cmp byte [esi + 0x1e], 0
jne 0x4ce19a
mov ecx, dword [esp + 0x10]
lea edi, [edx + edx*4]
mov edx, dword [esp + 8]
mov dword [esp + 0x24], edi
mov eax, dword [ecx + 0xf8]
mov esi, dword [edx + 0x14]
mov dword [esp + 0x14], esi
test eax, eax
je 0x4c7d86
mov edi, dword [esp + 0x104]
cmp dword [ecx + 0x100], edi
mov edi, dword [esp + 0x24]
jne 0x4c7d77
push dword [ecx + 0xfc]
call eax
add esp, 4
test eax, eax
jne 0x4ce039
mov edx, dword [esp + 8]
jmp 0x4c7d7e
mov eax, dword [esp + 0x104]
inc eax
mov dword [esp + 0x104], eax
movzx eax, byte [esi + edi*4]
mov cl, byte [eax + 0x54c0c8]
test cl, 2
je 0x4c7dc6
mov eax, dword [esi + edi*4 + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea eax, [eax + ecx*8]
mov ecx, eax
mov dword [esp + 0x18], eax
call fcn.004c3060
mov edx, dword [esp + 0x18]
mov eax, 1
mov word [edx + 0x1c], ax
mov dword [edx + 0x18], 0
jmp 0x4c7e55
mov dl, cl
and dl, 8
test cl, 4
je 0x4c7e35
mov eax, dword [esp + 8]
mov esi, dword [eax + 0x58]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x20], eax
test dl, dl
je 0x4c7e14
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + edi*4 + 8]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0xe4], eax
mov eax, dword [ecx + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
mov esi, ecx
mov dword [esp + 0x18], edx
jmp 0x4c7e55
mov edx, dword [esp + 0x18]
test cl, 0x10
je 0x4c7e97
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x2c], ecx
jmp 0x4c7e59
test dl, dl
je 0x4c7e77
mov eax, dword [esi + edi*4 + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea eax, [eax + ecx*8]
mov dword [esp + 0xe4], eax
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
movzx eax, byte [esi + edi*4]
dec eax
cmp eax, 0x90
ja case.0x4c7e70.10
movzx eax, byte [eax + 0x4ce728]
jmp dword [eax*4 + 0x4ce598]
test cl, 0x10
je 0x4c7e51
mov eax, dword [esi + edi*4 + 0xc]
mov edx, dword [esp + 0x18]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea ecx, [eax + ecx*8]
mov dword [esp + 0x2c], ecx
jmp 0x4c7e59
mov esi, dword [esp + 0x14]
jmp 0x4c7e55
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0xd8], 0
jne 0x4ce535
mov edx, dword [esi + edi*4 + 8]
mov esi, ecx
mov edi, dword [esp + 8]
dec edx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xc]
jmp 0x4c90ca
mov eax, dword [esi + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [esp + 0x1c]
cdq
mov dword [esp + 0x20], ecx
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x4c90b5
mov eax, dword [esp + 0x20]
mov edx, dword [eax]
jmp 0x4c90ba
mov ecx, dword [esp + 0x20]
mov eax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [ecx]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x1c]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x30]
jmp 0x4c90ba
test byte [ecx + 0x1c], 1
je case.0x4c7e70.10
mov eax, dword [esi + edi*4 + 4]
mov ecx, dword [esp + 8]
test eax, eax
jne 0x4ce05a
mov edi, dword [ecx + 0xdc]
test edi, edi
je 0x4ce056
mov eax, dword [edi + 0x3c]
dec dword [ecx + 0xe0]
mov dword [ecx + 0xdc], eax
mov eax, dword [ecx + 0x74]
mov ecx, dword [esp + 0x10]
add dword [ecx + 0x40], eax
mov dword [ecx + 0x3c], eax
mov esi, dword [edi]
mov eax, dword [edi + 8]
mov dword [esi + 0x14], eax
mov eax, dword [edi + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [edi + 0x10]
mov dword [esi + 0x58], eax
mov eax, dword [edi + 0x14]
mov dword [esi + 0x54], eax
mov eax, dword [edi + 0x18]
mov dword [esi + 0x34], eax
mov ax, word [edi + 0x1c]
mov word [esi + 0x32], ax
mov eax, dword [esi]
mov ecx, dword [edi + 0x30]
mov edx, dword [edi + 0x34]
mov dword [eax + 0x30], ecx
mov ecx, dword [esp + 0x14]
mov dword [eax + 0x34], edx
mov eax, dword [edi + 0x38]
mov dword [esi + 0x74], eax
mov eax, dword [esp + 0x24]
mov edx, dword [edi + 4]
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
cmp dword [ecx + eax*4 + 8], 4
mov dword [esp + 0x1c], edx
jne 0x4c7fd1
mov eax, dword [edi + 0x14]
lea ecx, [edx + edx*4]
mov edx, dword [eax + ecx*4 + 8]
dec edx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xc]
jmp 0x4c90ca
mov ecx, dword [esp + 0x18]
mov eax, 4
mov word [edx + 0x1c], ax
mov eax, dword [esi + edi*4 + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x4c7e70.10
mov eax, 4
mov word [edx + 0x1c], ax
mov eax, dword [esi + edi*4 + 0x10]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [edx], ecx
mov dword [edx + 4], eax
jmp case.0x4c7e70.10
mov eax, 8
mov word [edx + 0x1c], ax
mov eax, dword [esi + edi*4 + 0x10]
movsd xmm0, qword [eax]
movsd qword [edx + 8], xmm0
jmp case.0x4c7e70.10
mov ecx, dword [esi + edi*4 + 0x10]
mov eax, ecx
mov byte [esi + edi*4], 9
mov dword [esp + 0xd8], ecx
test ecx, ecx
je 0x4c8054
cmp byte [ecx], 0
je 0x4c804d
inc eax
cmp byte [eax], 0
jne 0x4c8047
sub eax, ecx
and eax, 0x3fffffff
cmp byte [esp + 0xe8], 1
mov dword [esi + edi*4 + 4], eax
je 0x4c814f
test ecx, ecx
jne 0x4c8077
mov ecx, edx
call fcn.004c33a0
mov edx, dword [esp + 0x18]
jmp 0x4c80d1
mov edi, dword [edx + 0x10]
xor esi, esi
test edi, edi
je 0x4c8089
mov edi, dword [edi + 0x48]
test edi, edi
js 0x4c809b
jmp 0x4c8090
mov edi, 0x3b9aca00
nop
cmp byte [esi + ecx], 0
je 0x4c809b
inc esi
cmp esi, edi
jle 0x4c8090
mov ecx, edx
call fcn.004c3140
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0xd8]
mov dword [edx + 0x14], eax
mov dword [edx + 0x20], 0
mov dword [edx + 0x18], esi
mov dword [edx + 0x1c], 0x1030a02
cmp esi, edi
jg 0x4ce3c3
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
test byte [edx + 0x1c], 2
mov dword [esp + 0xc], 0
je 0x4c8102
mov al, byte [esp + 0xe8]
cmp byte [edx + 0x1f], al
je 0x4c8102
mov ecx, dword [esp + 0x18]
mov dl, al
call fcn.004b52c0
test eax, eax
jne 0x4ce192
mov edx, dword [esp + 0x18]
mov ax, word [edx + 0x1c]
mov ecx, 0xfbff
and ax, cx
mov dword [edx + 0x24], 0
mov ecx, 0x800
or ax, cx
mov word [edx + 0x1c], ax
cmp byte [esi + edi*4 + 1], 0xff
jne 0x4c813c
push dword [esi + edi*4 + 0x10]
push dword [esp + 0x14]
call fcn.004b3560
mov edx, dword [esp + 0x20]
add esp, 8
mov byte [esi + edi*4 + 1], 0xff
mov eax, dword [edx + 0x14]
mov dword [esi + edi*4 + 0x10], eax
mov eax, dword [edx + 0x18]
mov dword [esi + edi*4 + 4], eax
mov ecx, dword [esp + 0x10]
cmp eax, dword [ecx + 0x48]
jg 0x4ce3e6
mov eax, 0xa02
mov word [edx + 0x1c], ax
mov eax, dword [esi + edi*4 + 0x10]
mov dword [edx + 0x14], eax
mov eax, dword [esi + edi*4 + 4]
mov dword [edx + 0x18], eax
mov al, byte [esp + 0xe8]
mov byte [edx + 0x1f], al
jmp case.0x4c7e70.10
mov eax, dword [esp + 0x24]
mov edi, dword [esi + edi*4 + 0x10]
mov esi, dword [esi + eax*4 + 4]
test edi, edi
jne 0x4c81ac
mov edi, dword [esp + 0x18]
mov ecx, edi
call fcn.004c33a0
mov al, byte [esp + 0xe8]
mov byte [edi + 0x1f], al
jmp case.0x4c7e70.10
mov ecx, dword [edx + 0x10]
test ecx, ecx
je 0x4c81b8
mov ecx, dword [ecx + 0x48]
jmp 0x4c81bd
mov ecx, 0x3b9aca00
mov eax, 0x10
mov dword [esp + 0x28], eax
test esi, esi
jns 0x4c81e9
xor esi, esi
test ecx, ecx
js 0x4c81e0
mov al, byte [esi + edi + 1]
or al, byte [esi + edi]
je 0x4c81e0
add esi, 2
cmp esi, ecx
jle 0x4c81d0
mov eax, 0x210
mov dword [esp + 0x28], eax
mov ecx, edx
call fcn.004c3140
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
or eax, 0x800
mov dword [ecx + 0x14], edi
mov edi, dword [esp + 0x18]
mov dword [edi + 0x20], 0
mov word [edi + 0x1c], ax
mov al, byte [esp + 0xe8]
mov dword [edi + 0x18], esi
mov byte [edi + 0x1e], 4
mov byte [edi + 0x1f], al
jmp case.0x4c7e70.10
mov edx, dword [esi + edi*4 + 4]
mov eax, dword [esp + 0x14]
dec edx
mov dword [esp + 0x30], edx
mov esi, dword [esi + edi*4 + 8]
mov dword [esp + 0x34], esi
mov eax, dword [eax + edi*4 + 0xc]
test eax, eax
jle 0x4c8305
mov edi, dword [esp + 8]
lea ecx, [edx + edx*4]
dec eax
inc edx
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], edx
mov eax, dword [edi + 0x48]
lea eax, [eax + ecx*8]
mov dword [esp + 0x3c], eax
movzx edx, word [eax + 0x1c]
test dl, 0x12
je 0x4c8283
mov ecx, dword [eax + 0x18]
test edx, 0x4000
je 0x4c8277
add ecx, dword [eax]
mov eax, dword [eax + 0x10]
cmp ecx, dword [eax + 0x48]
jg 0x4ce3c7
mov eax, dword [edi + 0x58]
lea ecx, [esi + esi*4]
inc esi
mov dword [esp + 0x34], esi
lea edi, [eax + ecx*8]
mov ecx, edi
mov dword [esp + 0x18], edi
call fcn.004c3060
mov eax, 1
mov ecx, edi
mov word [edi + 0x1c], ax
mov esi, dword [esp + 0x3c]
call fcn.004c3060
movups xmm0, xmmword [esi]
mov eax, 0x400
movups xmmword [edi], xmm0
movups xmm0, xmmword [esi + 0x10]
movups xmmword [edi + 0x10], xmm0
mov dword [edi + 0x20], 0
test word [esi + 0x1c], ax
jne 0x4c82d8
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x24]
jne 0x4c82f0
mov ax, word [edi + 0x1c]
mov ecx, 0xebff
and ax, cx
mov ecx, 0x800
or ax, cx
mov word [edi + 0x1c], ax
mov eax, dword [esp + 0x38]
test eax, eax
jle 0x4c8305
mov esi, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
jmp 0x4c8246
dec eax
mov dword [esp + 0x38], eax
jmp case.0x4c7e70.10
mov ecx, dword [esp + 0x14]
mov esi, dword [esi + edi*4 + 0xc]
mov dword [esp + 0x34], esi
mov eax, dword [ecx + edi*4 + 4]
mov dword [esp + 0x38], eax
mov edx, dword [ecx + edi*4 + 8]
mov ecx, dword [esp + 8]
mov dword [esp + 0x3c], edx
lea eax, [eax + eax*4]
mov ecx, dword [ecx + 0x58]
lea eax, [ecx + eax*8]
mov dword [esp + 0x20], eax
lea eax, [edx + edx*4]
lea edi, [ecx + eax*8]
mov dword [esp + 0x18], edi
test esi, esi
je 0x4c83e1
nop
dec esi
mov ecx, edi
mov dword [esp + 0x34], esi
mov eax, dword [edi + 0x24]
mov dword [esp + 0x30], eax
mov dword [edi + 0x24], 0
call fcn.004c3060
push dword [edi + 0x24]
push dword [edi + 0x10]
call fcn.004b3560
mov ecx, dword [esp + 0x28]
mov eax, 1
mov dword [edi + 0x14], 0
add esp, 8
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0
movups xmm0, xmmword [ecx]
movups xmmword [edi], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [edi + 0x10], xmm0
movq xmm0, qword [ecx + 0x20]
movq qword [edi + 0x20], xmm0
add edi, 0x28
mov dword [ecx + 0x24], 0
mov word [ecx + 0x1c], ax
mov dword [ecx + 0x20], 0
mov eax, dword [esp + 0x30]
mov dword [ecx + 0x24], eax
add ecx, 0x28
mov esi, dword [esp + 0x34]
mov dword [esp + 0x20], ecx
test esi, esi
jne 0x4c8350
mov dword [esp + 0x18], edi
dec esi
mov dword [esp + 0x34], esi
jmp case.0x4c7e70.10
mov eax, dword [esi + edi*4 + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea edi, [eax + ecx*8]
mov ecx, edi
mov dword [esp + 0x18], edi
call fcn.004c3060
mov ecx, dword [esp + 0x20]
mov eax, 0x400
movups xmm0, xmmword [ecx]
movups xmmword [edi], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [edi + 0x10], xmm0
mov dword [edi + 0x20], 0
test word [ecx + 0x1c], ax
jne 0x4c8433
mov eax, dword [ecx + 0x14]
cmp eax, dword [ecx + 0x24]
jne 0x4c844b
mov ax, word [edi + 0x1c]
mov ecx, 0xf3ff
and ax, cx
mov ecx, 0x1000
or ax, cx
mov word [edi + 0x1c], ax
movzx eax, word [edi + 0x1c]
test eax, 0x1000
je case.0x4c7e70.10
test eax, 0x4000
je 0x4c8468
mov ecx, edi
call fcn.004c2f50
test byte [edi + 0x1c], 0x12
je case.0x4c7e70.10
mov eax, dword [edi + 0x14]
cmp eax, dword [edi + 0x24]
je case.0x4c7e70.10
mov edx, dword [edi + 0x18]
mov ecx, edi
push 1
add edx, 2
call fcn.004c2d60
mov esi, dword [esp + 0x14]
add esp, 4
test eax, eax
jne 0x4ce581
mov ecx, dword [edi + 0x18]
mov eax, dword [edi + 0x14]
mov edx, dword [esp + 0xc]
mov byte [ecx + eax], 0
mov eax, dword [edi + 0x14]
mov ecx, dword [edi + 0x18]
mov byte [ecx + eax + 1], 0
mov eax, 0x200
or word [edi + 0x1c], ax
mov edi, dword [esp + 8]
jmp 0x4c90ca
mov eax, dword [esi + edi*4 + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea edi, [eax + ecx*8]
mov ecx, edi
mov dword [esp + 0x18], edi
call fcn.004c3060
mov ecx, dword [esp + 0x20]
mov eax, 0x400
movups xmm0, xmmword [ecx]
movups xmmword [edi], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [edi + 0x10], xmm0
mov dword [edi + 0x20], 0
test word [ecx + 0x1c], ax
jne 0x4c8513
mov eax, dword [ecx + 0x14]
cmp eax, dword [ecx + 0x24]
jne case.0x4c7e70.10
mov ax, word [edi + 0x1c]
mov ecx, 0xf3ff
and ax, cx
mov ecx, 0x1000
or ax, cx
mov word [edi + 0x1c], ax
jmp case.0x4c7e70.10
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0xe4]
movzx ecx, word [edi + 0x1c]
mov al, byte [esi + 0x1c]
or al, cl
test al, 1
je 0x4c8554
mov ecx, edx
call fcn.004c33a0
jmp case.0x4c7e70.10
test ecx, 0x4000
je 0x4c85ac
mov edx, dword [edi]
mov eax, 1
add edx, dword [edi + 0x18]
mov ecx, edi
test edx, edx
push eax
cmovle edx, eax
call fcn.004c2d60
add esp, 4
test eax, eax
je 0x4c8581
mov eax, 7
jmp 0x4c85a4
push dword [edi]
mov eax, dword [edi + 0x14]
add eax, dword [edi + 0x18]
push 0
push eax
call fcn.00506f10
mov eax, dword [edi]
add esp, 0xc
add dword [edi + 0x18], eax
mov eax, 0xbdff
and word [edi + 0x1c], ax
xor eax, eax
test eax, eax
jne 0x4ce192
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x4c85c6
mov ecx, esi
call fcn.004c2f50
test eax, eax
jne 0x4ce192
test byte [edi + 0x1c], 0x12
movzx esi, byte [esp + 0xe8]
jne 0x4c85e5
mov edx, esi
mov ecx, edi
call fcn.004c2fb0
test eax, eax
jne 0x4ce192
mov eax, dword [esp + 0xe4]
test byte [eax + 0x1c], 0x12
jne 0x4c860a
mov edx, esi
mov ecx, eax
call fcn.004c2fb0
test eax, eax
jne 0x4ce192
mov eax, dword [esp + 0xe4]
mov ecx, dword [eax + 0x18]
add ecx, dword [edi + 0x18]
mov esi, dword [esp + 0x10]
mov eax, ecx
cdq
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
cmp ecx, dword [esi + 0x48]
jg 0x4ce3bd
mov edi, dword [esp + 0x18]
mov ecx, 0xbf02
mov ax, word [edi + 0x1c]
and ax, cx
mov ecx, edi
or ax, 2
mov word [edi + 0x1c], ax
xor eax, eax
mov edx, dword [esp + 0x30]
cmp edi, dword [esp + 0xe4]
sete al
push eax
lea edx, [edx + 2]
call fcn.004c2d60
add esp, 4
test eax, eax
jne 0x4ce581
mov eax, dword [esp + 0xe4]
cmp edi, eax
je 0x4c8682
push dword [eax + 0x18]
push dword [eax + 0x14]
push dword [edi + 0x14]
call fcn.00506990
add esp, 0xc
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xe4]
push dword [eax + 0x18]
push dword [eax + 0x14]
mov eax, dword [edi + 0x14]
add eax, dword [ecx + 0x18]
push eax
call fcn.00506990
mov eax, dword [esp + 0x3c]
add esp, 0xc
mov ecx, dword [edi + 0x14]
mov byte [eax + ecx], 0
mov eax, dword [esp + 0x30]
mov ecx, dword [edi + 0x14]
mov byte [ecx + eax + 1], 0
mov eax, 0x200
or word [edi + 0x1c], ax
mov eax, dword [esp + 0x30]
mov dword [edi + 0x18], eax
mov al, byte [esp + 0xe8]
mov byte [edi + 0x1f], al
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
jmp 0x4c90ca
mov ecx, dword [esp + 0x20]
call fcn.004c7ab0
mov ecx, dword [esp + 0xe4]
call fcn.004c7ab0
mov eax, dword [esp + 0xe4]
mov edx, dword [esp + 0x20]
movzx ecx, word [eax + 0x1c]
movzx eax, word [edx + 0x1c]
or ecx, eax
mov dword [esp + 0x30], ecx
test cl, 1
jne 0x4c8a13
mov eax, dword [esp + 0xe4]
mov al, byte [eax + 0x1c]
and al, byte [edx + 0x1c]
test al, 4
je 0x4c881d
mov esi, dword [edx]
mov eax, dword [esp + 0xe4]
mov edi, dword [edx + 4]
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], edi
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x24]
mov dword [esp + 0xd8], esi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edx
movzx eax, byte [esi + eax*4]
mov esi, dword [esp + 0xd8]
add eax, 0xffffffaa
cmp eax, 3
ja case.default.0x4c876f
jmp dword [eax*4 + 0x4ce7bc]
add ecx, esi
adc edx, edi
jmp 0x4c87f3
sub ecx, esi
sbb edx, edi
jmp 0x4c87f3
push edx
push ecx
push edi
push esi
call fcn.005056a0
jmp 0x4c87f1
mov eax, esi
or eax, edi
je 0x4c8a13
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x4c87bb
test ecx, ecx
jne 0x4c87bb
cmp edx, 0x80000000
jne 0x4c87bb
mov esi, 1
xor edi, edi
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], edi
push edi
push esi
push edx
push ecx
call fcn.0052a450
jmp 0x4c87f1
mov eax, esi
or eax, edi
je 0x4c8a13
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x4c87e8
mov esi, 1
xor edi, edi
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], edi
push edi
push esi
push edx
push ecx
call fcn.0052a540
mov ecx, eax
mov esi, dword [esp + 0x18]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edx
mov ax, word [esi + 0x1c]
mov dword [esi], ecx
mov ecx, 0xbf04
and ax, cx
mov dword [esi + 4], edx
or ax, 4
mov word [esi + 0x1c], ax
jmp case.0x4c7e70.10
mov ecx, edx
call fcn.004c3260
mov ecx, dword [esp + 0xe4]
movsd qword [esp + 0x48], xmm0
call fcn.004c3260
movsd qword [esp + 0x50], xmm0
movzx eax, byte [esi + edi*4]
add eax, 0xffffffaa
movsd qword [esp + 0xf0], xmm0
cmp eax, 3
ja case.default.0x4c8851
jmp dword [eax*4 + 0x4ce7cc]
addsd xmm0, qword [esp + 0x48]
jmp 0x4c88f9
subsd xmm0, qword [esp + 0x48]
jmp 0x4c88f9
mulsd xmm0, qword [esp + 0x48]
jmp 0x4c88f9
movsd xmm1, qword [esp + 0x48]
ucomisd xmm1, qword [esp + 0x130]
lahf
test ah, 0x44
jnp 0x4c8a13
divsd xmm0, xmm1
jmp 0x4c88f9
movsd xmm0, qword [esp + 0x48]
call fcn.0052aa70
movsd xmm0, qword [esp + 0xf0]
mov esi, eax
mov edi, edx
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], edi
call fcn.0052aa70
mov ecx, eax
mov dword [esp + 0x44], edx
mov eax, esi
mov dword [esp + 0x40], ecx
or eax, edi
je 0x4c8a13
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x4c88e9
mov esi, 1
xor edi, edi
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], edi
push edi
push esi
push edx
push ecx
call fcn.0052a540
mov ecx, eax
call fcn.0052ab80
movsd qword [esp + 0x50], xmm0
movsd qword [esp + 0xf0], xmm0
movsd xmm0, qword [esp + 0xf0]
movsd qword [esp + 0xd8], xmm0
movsd xmm0, qword [esp + 0xf0]
ucomisd xmm0, qword [esp + 0xd8]
lahf
test ah, 0x44
jp 0x4c8a13
mov ecx, dword [esp + 0x18]
movsd xmm0, qword [esp + 0x50]
mov ax, word [ecx + 0x1c]
movsd qword [ecx + 8], xmm0
mov ecx, 0xbf08
movsd xmm0, qword [esp + 0x50]
and ax, cx
or ax, 8
movsd qword [esp + 0xf0], xmm0
movzx ecx, ax
mov dword [esp + 0xd8], ecx
mov ecx, dword [esp + 0x18]
mov word [ecx + 0x1c], ax
test byte [esp + 0x30], 8
jne case.0x4c7e70.10
movsd xmm1, qword [esp + 0x148]
comisd xmm1, xmm0
jbe 0x4c8999
xor edi, edi
mov esi, 0x80000000
jmp 0x4c89ba
comisd xmm0, xmmword [esp + 0x158]
jbe 0x4c89ad
xor edi, edi
mov esi, 0x80000000
jmp 0x4c89ba
call fcn.0052aa70
mov ecx, dword [esp + 0x18]
mov edi, eax
mov esi, edx
mov dword [ecx], edi
mov edx, esi
mov dword [ecx + 4], esi
mov ecx, edi
call fcn.0052ab80
movsd xmm1, qword [esp + 0xf0]
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp case.0x4c7e70.10
add edi, 0xffffffff
adc esi, 0x7fffffff
cmp esi, 0xffffffff
ja case.0x4c7e70.10
jb 0x4c89fc
cmp edi, 0xfffffffd
ja case.0x4c7e70.10
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xd8]
or eax, 4
mov word [ecx + 0x1c], ax
jmp case.0x4c7e70.10
mov ecx, dword [esp + 0x18]
call fcn.004c33a0
jmp case.0x4c7e70.10
mov cl, byte [esi + edi*4 + 3]
mov edx, dword [esp + 0x14]
movzx eax, cl
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 8]
mov esi, dword [eax + 0x24]
mov edi, dword [eax + 0x58]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x78], esi
mov eax, dword [edx + eax*4 + 8]
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
xor eax, eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], eax
test cl, cl
je 0x4c8abb
nop word [eax + eax]
mov dword [esi + eax*4], edx
mov ecx, dword [esp + 0x34]
movzx eax, word [ecx + 0x1c]
test al, 1
je 0x4c8a75
mov byte [ecx + 0x1e], 5
jmp 0x4c8a94
test al, 4
je 0x4c8a7f
mov byte [ecx + 0x1e], 1
jmp 0x4c8a94
test al, 8
je 0x4c8a89
mov byte [ecx + 0x1e], 2
jmp 0x4c8a94
and al, 2
neg al
sbb al, al
add al, 4
mov byte [ecx + 0x1e], al
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
inc eax
add edx, 0x28
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
cmp eax, dword [esp + 0x7c]
jge 0x4c8ab4
mov esi, dword [esp + 0x78]
jmp 0x4c8a60
mov eax, dword [esp + 8]
mov edi, dword [eax + 0x58]
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
cmp byte [ecx + esi*4 + 1], 0xfb
mov eax, dword [ecx + esi*4 + 0x10]
jne 0x4c8ad8
mov dword [esp + 0x3c], 0
jmp 0x4c8ade
mov dword [esp + 0x3c], eax
mov eax, dword [eax]
mov dword [esp + 0x38], eax
mov eax, dword [ecx + esi*4 + 0xc]
lea ecx, [esp + 0x40]
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov eax, 1
mov word [esp + 0x5c], ax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], edi
mov dword [esp + 0x50], eax
call fcn.004c3060
push dword [esp + 0x64]
push dword [esp + 0x54]
call fcn.004b3560
mov dword [esp + 0x5c], 0
mov eax, 1
mov dword [esp + 0x6c], 0
add esp, 8
mov dword [esp + 0x60], 0
movups xmm0, xmmword [edi]
movups xmmword [esp + 0x40], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esp + 0x50], xmm0
movq xmm0, qword [edi + 0x20]
movq qword [esp + 0x60], xmm0
mov word [edi + 0x1c], ax
mov dword [edi + 0x20], 0
mov dword [edi + 0x24], 0
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x38]
and eax, 0xbf01
mov edi, dword [esp + 0x14]
or eax, 1
mov word [esp + 0x5c], ax
mov dword [esp + 0x6c], 0
test byte [ecx + 3], 8
je 0x4c8ba5
mov eax, dword [edi + esi*4 - 4]
mov dword [esp + 0x70], eax
push dword [esp + 0x78]
lea eax, [esp + 0x3c]
push dword [esp + 0x80]
push eax
mov eax, dword [ecx + 0xc]
call eax
mov eax, dword [esp + 0x1c]
add esp, 0xc
cmp byte [eax + 0x1e], 0
jne 0x4ce0c8
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x4c8be9
mov edx, dword [edi + esi*4 + 4]
call fcn.004c5e30
mov eax, dword [esp + 0x3c]
mov dword [edi + esi*4 + 0x10], eax
mov byte [edi + esi*4 + 1], 0xf9
cmp dword [esp + 0x6c], 0
je 0x4c8c20
mov dl, 1
lea ecx, [esp + 0x40]
call fcn.004c3d20
mov esi, dword [esp + 0x10]
push eax
mov eax, dword [esp + 0xc]
push 0x54e6e8
add eax, 0x68
push esi
push eax
call fcn.004b39d0
mov eax, dword [esp + 0x7c]
add esp, 0x10
mov dword [esp + 0xc], eax
jmp 0x4c8c24
mov esi, dword [esp + 0x10]
test byte [esp + 0x5c], 2
je 0x4c8c43
mov al, byte [esp + 0xe8]
cmp byte [esp + 0x5f], al
je 0x4c8c43
mov dl, al
lea ecx, [esp + 0x40]
call fcn.004b52c0
mov edi, dword [esp + 0x18]
mov ecx, edi
call fcn.004c3060
push dword [edi + 0x24]
push dword [edi + 0x10]
call fcn.004b3560
mov dword [edi + 0x14], 0
mov eax, 1
mov dword [edi + 0x24], 0
add esp, 8
mov dword [edi + 0x20], 0
movups xmm0, xmmword [esp + 0x40]
movups xmmword [edi], xmm0
movups xmm0, xmmword [esp + 0x50]
movups xmmword [edi + 0x10], xmm0
movq xmm0, qword [esp + 0x60]
movq qword [edi + 0x20], xmm0
mov word [esp + 0x5c], ax
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
movzx eax, word [edi + 0x1c]
test al, 0x12
je 0x4c86d3
mov ecx, dword [edi + 0x18]
test eax, 0x4000
je 0x4c8cbf
add ecx, dword [edi]
mov eax, dword [edi + 0x10]
mov edi, dword [esp + 8]
cmp ecx, dword [eax + 0x48]
jg 0x4ce3cb
mov edx, dword [esp + 0xc]
jmp 0x4c90ca
mov ecx, dword [esp + 0xe4]
mov esi, dword [esp + 0x20]
mov al, byte [ecx + 0x1c]
or al, byte [esi + 0x1c]
test al, 1
je 0x4c8cf9
mov ecx, edx
call fcn.004c33a0
jmp case.0x4c7e70.10
call fcn.004c3180
mov ecx, esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
call fcn.004c3180
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], esi
movzx eax, byte [eax + edi*4]
sub eax, 0x52
je 0x4c8d6b
sub eax, 1
je 0x4c8d5d
sub eax, 1
je 0x4c8d3f
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
call fcn.0052a9d0
jmp 0x4c8d77
movq xmm1, qword [esp + 0x30]
movd xmm0, ecx
psllq xmm1, xmm0
movq qword [esp + 0x30], xmm1
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
jmp 0x4c8d7f
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
or eax, ecx
or edx, esi
jmp 0x4c8d77
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
and eax, ecx
and edx, esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
mov ecx, dword [esp + 0x18]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov edx, 0xbf04
mov ax, word [ecx + 0x1c]
and ax, dx
or ax, 4
mov word [ecx + 0x1c], ax
jmp case.0x4c7e70.10
mov ecx, dword [esp + 0x20]
call fcn.004c3180
mov ecx, dword [esp + 0x20]
mov dword [ecx], eax
mov ax, word [ecx + 0x1c]
mov dword [ecx + 4], edx
mov edx, 0xbf04
and ax, dx
or ax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [esi + edi*4 + 8]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp case.0x4c7e70.10
mov ecx, dword [esp + 0x20]
call fcn.004c7ab0
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 8
je 0x4c8df2
call fcn.004c3320
mov ecx, dword [esp + 0x20]
movzx eax, word [ecx + 0x1c]
test al, 4
jne 0x4c8e1a
mov eax, dword [esi + edi*4 + 8]
mov edi, dword [esp + 8]
test eax, eax
je 0x4ce1c9
lea edx, [eax - 1]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xc]
jmp 0x4c90c6
and eax, 0xbf04
or eax, 4
mov word [ecx + 0x1c], ax
jmp case.0x4c7e70.10
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 4
je case.0x4c7e70.10
call fcn.004c3260
mov ecx, dword [esp + 0x20]
mov edx, 0xbf08
mov ax, word [ecx + 0x1c]
and ax, dx
movsd qword [ecx + 8], xmm0
or ax, 8
mov word [ecx + 0x1c], ax
jmp case.0x4c7e70.10
mov eax, dword [esp + 0x20]
movzx ecx, word [eax + 0x1c]
test cl, 1
jne case.0x4c7e70.10
mov eax, ecx
shr eax, 3
and eax, 2
or eax, ecx
mov ecx, dword [esp + 0x20]
mov word [ecx + 0x1c], ax
test al, 2
jne 0x4c8e9c
test al, 0xc
je 0x4c8e9c
movzx edx, byte [esp + 0xe8]
call fcn.004c2fb0
mov ecx, dword [esp + 0x20]
mov eax, 0xfff3
and word [ecx + 0x1c], ax
mov ax, word [ecx + 0x1c]
test eax, 0x4000
je 0x4c8f1e
mov edx, dword [ecx]
mov eax, 1
add edx, dword [ecx + 0x18]
test edx, edx
push eax
cmovle edx, eax
call fcn.004c2d60
mov ecx, dword [esp + 0x24]
add esp, 4
test eax, eax
je 0x4c8ef2
movzx eax, word [ecx + 0x1c]
mov edx, 7
movzx eax, ax
and eax, 0xbfe3
mov dword [esp + 0xc], 7
mov word [ecx + 0x1c], ax
jmp 0x4c90c2
push dword [ecx]
mov eax, dword [ecx + 0x14]
add eax, dword [ecx + 0x18]
push 0
push eax
call fcn.00506f10
mov ecx, dword [esp + 0x2c]
add esp, 0xc
mov eax, dword [ecx]
add dword [ecx + 0x18], eax
mov eax, 0xbdff
and ax, word [ecx + 0x1c]
mov word [ecx + 0x1c], ax
movzx eax, ax
xor edx, edx
movzx eax, ax
and eax, 0xbfe3
mov dword [esp + 0xc], edx
mov word [ecx + 0x1c], ax
jmp 0x4c90c2
mov ecx, dword [esp + 0x20]
movzx eax, word [ecx + 0x1c]
test al, 1
jne case.0x4c7e70.10
test al, 0x10
jne 0x4c8f7b
test al, 2
jne 0x4c8f62
test al, 0xc
je 0x4c8f62
movzx edx, byte [esp + 0xe8]
call fcn.004c2fb0
mov ecx, dword [esp + 0x20]
mov ax, word [ecx + 0x1c]
mov edx, 0xbf10
and ax, dx
or ax, 0x10
mov word [ecx + 0x1c], ax
jmp case.0x4c7e70.10
and eax, 0xff10
mov word [ecx + 0x1c], ax
jmp case.0x4c7e70.10
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 0xd
jne case.0x4c7e70.10
call fcn.004c3260
movsd xmm1, qword [esp + 0x148]
comisd xmm1, xmm0
movsd qword [esp + 0xf0], xmm0
jbe 0x4c8fbd
xor eax, eax
mov edx, 0x80000000
jmp 0x4c8fd6
comisd xmm0, xmmword [esp + 0x158]
jbe 0x4c8fd1
xor eax, eax
mov edx, 0x80000000
jmp 0x4c8fd6
call fcn.0052aa70
mov ecx, eax
call fcn.0052ab80
movsd xmm1, qword [esp + 0xf0]
mov ecx, dword [esp + 0x20]
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x4c9002
call fcn.004c3180
mov ecx, dword [esp + 0x20]
jmp 0x4c8d83
movsd qword [ecx + 8], xmm1
mov ax, word [ecx + 0x1c]
mov edx, 0xbf08
and ax, dx
or ax, 8
mov word [ecx + 0x1c], ax
jmp case.0x4c7e70.10
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 1
jne case.0x4c7e70.10
call fcn.004c3180
mov ecx, dword [esp + 0x20]
jmp 0x4c8d83
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 1
jne case.0x4c7e70.10
call fcn.004c3260
mov ecx, dword [esp + 0x20]
movsd qword [ecx + 8], xmm0
jmp 0x4c9007
mov eax, dword [esp + 0x20]
movzx ecx, word [ecx + 0x1c]
movzx edx, word [eax + 0x1c]
mov al, cl
or al, dl
test al, 1
je 0x4c90df
mov al, byte [esi + edi*4 + 3]
test al, al
jns 0x4c907e
and ecx, edx
not ecx
and ecx, 1
jmp 0x4c91a9
test al, 0x10
je 0x4c90b1
mov eax, dword [esi + edi*4 + 8]
mov edx, 0xbf01
mov edi, dword [esp + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea ecx, [eax + ecx*8]
mov ax, word [ecx + 0x1c]
and ax, dx
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0xc]
or ax, 1
mov word [ecx + 0x1c], ax
jmp 0x4c90c6
test al, 8
je case.0x4c7e70.10
mov edx, dword [esi + edi*4 + 8]
dec edx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
inc dword [esp + 0x1c]
test edx, edx
jne 0x4ce506
mov edx, dword [esp + 0x1c]
jmp 0x4c7d21
mov dl, byte [esi + edi*4 + 3]
and dl, 0x67
mov byte [esp + 0x34], dl
je 0x4c9124
push dword [esp + 0xe8]
mov ecx, dword [esp + 0x24]
call fcn.004c7b90
mov dl, byte [esp + 0x38]
add esp, 4
mov ecx, dword [esp + 0x2c]
push dword [esp + 0xe8]
call fcn.004c7b90
mov eax, dword [esp + 0x14]
add esp, 4
cmp byte [eax + 0x1e], 0
jne 0x4ce58a
mov ecx, dword [esp + 0x20]
mov edx, 0xe
mov ax, word [ecx + 0x1c]
bt ax, dx
jae 0x4c917b
mov edx, dword [ecx]
mov eax, 1
add edx, dword [ecx + 0x18]
test edx, edx
push eax
cmovle edx, eax
call fcn.004c2d60
add esp, 4
test eax, eax
jne 0x4c917b
mov ecx, dword [esp + 0x20]
push dword [ecx]
push eax
mov eax, dword [ecx + 0x14]
add eax, dword [ecx + 0x18]
push eax
call fcn.00506f10
mov ecx, dword [esp + 0x2c]
add esp, 0xc
mov eax, dword [ecx]
add dword [ecx + 0x18], eax
mov eax, 0xbdff
and word [ecx + 0x1c], ax
mov eax, dword [esp + 0x2c]
mov ecx, 0x4000
test word [eax + 0x1c], cx
je 0x4c9195
mov ecx, eax
call fcn.004c2f50
mov eax, dword [esp + 0x2c]
push dword [esi + edi*4 + 0x10]
mov edx, dword [esp + 0x24]
mov ecx, eax
call fcn.004c38a0
add esp, 4
mov ecx, eax
mov dword [esp + 0x30], ecx
movzx eax, byte [esi + edi*4]
add eax, 0xffffffb5
cmp eax, 4
ja case.default.0x4c91b9
jmp dword [eax*4 + 0x4ce7dc]
xor eax, eax
test ecx, ecx
sete al
jmp 0x4c91ef
xor eax, eax
test ecx, ecx
setne al
jmp 0x4c91ef
mov eax, ecx
jmp 0x4c91ec
xor eax, eax
test ecx, ecx
setle al
jmp 0x4c91ef
xor eax, eax
test ecx, ecx
setg al
jmp 0x4c91ef
mov eax, ecx
not eax
shr eax, 0x1f
mov dword [esp + 0x30], eax
test byte [esi + edi*4 + 3], 0x10
je 0x4c9584
mov eax, dword [esi + edi*4 + 8]
mov edi, dword [esp + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea esi, [eax + ecx*8]
mov ecx, 0xbf04
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esp + 0x18], esi
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x30]
cdq
mov dword [esi + 4], edx
mov edx, dword [esp + 0xc]
mov dword [esi], eax
jmp 0x4c90c6
mov eax, dword [esi + edi*4 + 0x10]
mov dword [esp + 0x108], eax
jmp case.0x4c7e70.10
mov eax, dword [esi + edi*4 + 0xc]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x30], eax
mov esi, dword [esi + edi*4 + 0x10]
mov dword [esp + 0x40], esi
mov ecx, dword [edx + edi*4 + 4]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x38], ecx
mov ecx, dword [edx + edi*4 + 8]
xor edx, edx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x34], edx
test eax, eax
jle 0x4c9318
mov eax, dword [esp + 0x108]
test eax, eax
je 0x4c9294
mov edi, dword [eax + edx*4]
jmp 0x4c9296
mov edi, edx
mov dword [esp + 0x44], edi
mov ecx, dword [esi + edx*4 + 0xc]
mov dword [esp + 0x48], ecx
mov eax, dword [esi + 8]
push ecx
movzx eax, byte [eax + edx]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xc]
mov esi, dword [eax + 0x58]
mov eax, dword [esp + 0x2c]
add eax, edi
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
mov eax, dword [esp + 0x28]
add eax, edi
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.004c38a0
add esp, 4
mov dword [esp + 0x10c], eax
test eax, eax
jne 0x4c9308
mov edx, dword [esp + 0x34]
inc edx
mov dword [esp + 0x34], edx
cmp edx, dword [esp + 0x30]
jge 0x4c9318
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], ecx
jmp 0x4c9284
cmp dword [esp + 0x4c], 0
je 0x4c9318
neg eax
mov dword [esp + 0x10c], eax
xor eax, eax
mov dword [esp + 0x108], eax
jmp case.0x4c7e70.10
mov ecx, dword [esp + 0x10c]
test ecx, ecx
jns 0x4c933d
mov eax, dword [esi + edi*4 + 4]
lea edx, [eax - 1]
jmp 0x4c90ba
jne 0x4c934b
mov eax, dword [esi + edi*4 + 8]
lea edx, [eax - 1]
jmp 0x4c90ba
mov eax, dword [esi + edi*4 + 0xc]
lea edx, [eax - 1]
jmp 0x4c90ba
mov eax, dword [esp + 0x20]
test byte [eax + 0x1c], 1
je 0x4c9368
mov ecx, 2
jmp 0x4c937c
mov ecx, eax
call fcn.004c3180
or eax, edx
je 0x4c937a
mov ecx, 1
jmp 0x4c937c
xor ecx, ecx
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], ecx
test byte [eax + 0x1c], 1
je 0x4c9394
mov eax, 2
jmp 0x4c93ac
mov ecx, eax
call fcn.004c3180
or eax, edx
mov ecx, dword [esp + 0x30]
je 0x4c93aa
mov eax, 1
jmp 0x4c93ac
xor eax, eax
mov dword [esp + 0x34], eax
lea eax, [eax + ecx*2]
cmp byte [esi + edi*4], 0x45
jne 0x4c93c3
movzx eax, byte [ecx + eax + 0x54a1c4]
jmp 0x4c93cb
movzx eax, byte [ecx + eax + 0x54972c]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x30], eax
cmp eax, 2
jne 0x4c93f4
mov ax, word [edi + 0x1c]
mov ecx, 0xbf01
and ax, cx
or ax, 1
movzx eax, ax
mov word [edi + 0x1c], ax
jmp case.0x4c7e70.10
cdq
mov ecx, 0xbf04
mov dword [edi], eax
mov ax, word [edi + 0x1c]
and ax, cx
mov dword [edi + 4], edx
or ax, 4
movzx eax, ax
mov word [edi + 0x1c], ax
jmp case.0x4c7e70.10
mov eax, dword [esi + edi*4 + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea edi, [eax + ecx*8]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x18], edi
test byte [eax + 0x1c], 1
je 0x4c9441
mov ecx, edi
call fcn.004c33a0
jmp case.0x4c7e70.10
mov ecx, eax
call fcn.004c3180
or eax, edx
jne 0x4c9453
lea esi, [eax + 1]
xor edi, edi
jmp 0x4c946d
xorps xmm0, xmm0
movlpd qword [esp + 0xf0], xmm0
mov edi, dword [esp + 0xf4]
mov esi, dword [esp + 0xf0]
mov ecx, dword [esp + 0x18]
call fcn.004c3060
mov eax, dword [esp + 0x18]
push dword [eax + 0x24]
push dword [eax + 0x10]
call fcn.004b3560
mov ecx, dword [esp + 0x20]
mov eax, 4
add esp, 8
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x24], 0
mov dword [ecx + 0x20], 0
mov dword [ecx], esi
mov dword [ecx + 4], edi
mov byte [ecx + 0x1e], 1
mov word [ecx + 0x1c], ax
jmp case.0x4c7e70.10
mov eax, dword [esi + edi*4 + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea edi, [eax + ecx*8]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x18], edi
test byte [eax + 0x1c], 1
je 0x4c94e3
mov ecx, edi
call fcn.004c33a0
jmp case.0x4c7e70.10
mov ecx, eax
call fcn.004c3180
mov esi, eax
mov edi, edx
not esi
not edi
mov ecx, dword [esp + 0x18]
call fcn.004c3060
mov eax, dword [esp + 0x18]
push dword [eax + 0x24]
push dword [eax + 0x10]
call fcn.004b3560
mov eax, dword [esp + 0x20]
mov ecx, 4
add esp, 8
mov dword [eax + 0x14], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x20], 0
mov dword [eax], esi
mov dword [eax + 4], edi
mov word [eax + 0x1c], cx
mov byte [eax + 0x1e], 1
jmp case.0x4c7e70.10
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 1
je 0x4c9556
mov eax, dword [esi + edi*4 + 0xc]
test eax, eax
mov dword [esp + 0x30], eax
jmp 0x4c90b3
call fcn.004c3260
ucomisd xmm0, qword [esp + 0x130]
lahf
test ah, 0x44
jnp 0x4c9571
mov eax, 1
jmp 0x4c9573
xor eax, eax
mov dword [esp + 0x30], eax
cmp byte [esi + edi*4], 0x1b
jne 0x4c9584
xor eax, 1
mov dword [esp + 0x30], eax
test eax, eax
jmp 0x4c90b3
mov eax, dword [esp + 0x20]
test byte [eax + 0x1c], 1
jmp 0x4c90b3
mov eax, dword [esp + 0x20]
test byte [eax + 0x1c], 1
jne case.0x4c7e70.10
jmp 0x4c90b5
mov eax, dword [esi + edi*4 + 4]
xorps xmm0, xmm0
mov edx, dword [esp + 8]
mov dword [esp + 0x40], eax
mov eax, dword [esi + edi*4 + 8]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], 0
movups xmmword [esp + 0x70], xmm0
movups xmmword [esp + 0x80], xmm0
movq qword [esp + 0x90], xmm0
mov eax, dword [esi + edi*4 + 0xc]
mov esi, 0xbf01
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea ecx, [eax + ecx*8]
mov dword [esp + 0x6c], ecx
mov ax, word [ecx + 0x1c]
and ax, si
or ax, 1
mov word [ecx + 0x1c], ax
mov ecx, dword [edx + 0x34]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x4c], 0
mov esi, dword [ecx + eax*4]
mov ecx, esi
mov dword [esp + 0x48], ecx
mov eax, dword [ecx]
mov dword [esp + 0x50], eax
test eax, eax
je 0x4c97f4
cmp byte [esi + 0x15], 0
je 0x4c969c
mov ecx, dword [esi]
lea eax, [esp + 0x128]
push eax
push 0
push dword [esi + 0x1c]
xor edx, edx
push dword [esi + 0x18]
call fcn.004bf8e0
mov edx, eax
add esp, 0x10
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4ce33b
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x128]
test ecx, ecx
mov dword [esi + 8], eax
sete al
mov byte [esi + 0x11], al
test ecx, ecx
jns 0x4c9696
mov ecx, dword [esi]
lea edx, [esp + 0x128]
call fcn.004bfde0
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4ce33b
mov byte [esi + 0x15], 0
jmp 0x4c96de
mov edi, dword [esi]
test edi, edi
je 0x4c96e9
cmp byte [edi + 0x43], 2
jb 0x4c96c1
mov ecx, edi
call fcn.004bd9a0
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4ce33b
mov ecx, dword [esp + 0x48]
cmp byte [edi + 0x43], 1
jne 0x4c96d1
cmp dword [edi + 0x50], 0
jne 0x4c96d1
xor eax, eax
jmp 0x4c96d6
mov eax, 1
test eax, eax
je 0x4c96e9
mov byte [esi + 0x14], 1
mov dword [esi + 0x44], 0
mov ecx, dword [esp + 0x48]
xor edi, edi
cmp byte [ecx + 0x14], 0
mov dword [esp + 0xc], edi
je 0x4c970b
mov dword [esp + 0x30], edi
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 8]
inc edx
mov esi, dword [esp + 0x10]
jmp 0x4c7d1d
mov esi, dword [esp + 8]
mov eax, dword [ecx + 0x44]
cmp eax, dword [esi + 0x5c]
jne 0x4c9738
mov edx, dword [ecx + 0x48]
mov dword [esp + 0x30], edx
mov eax, dword [ecx + 0x54]
mov dword [esp + 0x4c], eax
mov eax, esi
mov esi, 0x5c
mov dword [esp + 0xc], edi
lea edi, [esi + eax]
jmp 0x4c983c
cmp byte [ecx + 0x17], 0
je 0x4c976a
mov ecx, dword [esp + 0x50]
lea edx, [esp + 0x38]
call fcn.004bf060
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0xc], eax
mov eax, esi
mov esi, 0x5c
mov dword [esp + 0x30], edx
lea edi, [esi + eax]
jmp 0x4c983c
mov edx, dword [esp + 0x50]
mov dword [esp + 0xec], edx
cmp word [edx + 0x3e], di
jne 0x4c97d9
movsx eax, word [edx + 0x5c]
movzx edi, word [edx + eax*2 + 0xb0]
mov eax, dword [edx + eax*4 + 0x60]
mov dword [esp + 0xd8], eax
mov ecx, dword [eax + 0x40]
movzx esi, word [eax + 0xc]
lea eax, [edx + 0x20]
add esi, ecx
push eax
movzx eax, byte [esi + edi*2 + 1]
movzx edx, byte [esi + edi*2]
mov esi, dword [esp + 0xdc]
shl edx, 8
or edx, eax
movzx eax, word [esi + 0x12]
and edx, eax
add edx, ecx
mov ecx, esi
call fcn.004bdae0
mov edx, dword [esp + 0xf0]
add esp, 4
mov esi, dword [esp + 8]
mov byte [edx + 0x42], 1
mov ecx, dword [esp + 0x48]
mov edx, dword [edx + 0x30]
mov eax, esi
mov esi, 0x5c
mov dword [esp + 0xc], 0
mov dword [esp + 0x30], edx
lea edi, [esi + eax]
jmp 0x4c983c
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x4c9e06
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea ecx, [eax + ecx*8]
mov dword [esp + 0xb8], ecx
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x30], eax
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x14]
test byte [eax + edi*4 + 3], 0x20
lea edi, [edx + 0x5c]
je 0x4c982f
xor eax, eax
jmp 0x4c9831
mov eax, dword [edi]
mov dword [esi + 0x44], eax
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x10]
test edx, edx
je 0x4c86d3
cmp edx, dword [esi + 0x48]
ja 0x4ce3bd
mov esi, dword [ecx + 0x2c]
mov dword [esp + 0x5c], esi
mov edx, dword [ecx + 0x4c]
mov dword [esp + 0x54], edx
mov eax, dword [ecx + 0x44]
cmp eax, dword [edi]
jne 0x4c9872
mov eax, dword [ecx + 0x50]
mov dword [esp + 0x58], eax
jmp 0x4c9b74
lea eax, [edx + esi*4]
mov dword [esp + 0xb4], 0
mov dword [esp + 0x58], eax
mov dword [ecx + 0x50], eax
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x30]
mov dword [ecx + 0x48], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [edi]
mov dword [eax + 0x44], ecx
mov ecx, dword [esp + 0x4c]
test ecx, ecx
je 0x4c98a9
mov dword [esp + 0x68], ecx
jmp 0x4c9903
mov esi, dword [esp + 0x48]
xor edx, edx
mov ecx, dword [esp + 0x50]
cmp byte [esi + 0x17], dl
je 0x4c98c1
cmp byte [ecx + 0x43], 1
jne 0x4c98de
push edx
jmp 0x4c98c9
cmp byte [ecx + 0x43], 1
jne 0x4c98de
push 1
lea edx, [esp + 0xb8]
call fcn.004bf4d0
mov esi, dword [esp + 0x4c]
add esp, 4
mov edx, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x68], edx
cmp eax, dword [esp + 0xb4]
ja 0x4c98f8
mov dword [esp + 0x4c], edx
mov dword [esi + 0x54], edx
jmp 0x4c98ff
mov dword [esi + 0x54], 0
mov ecx, dword [esp + 0x68]
mov al, byte [ecx]
cmp al, 0x80
jae 0x4c9917
movzx edx, al
mov al, 1
mov dword [esp + 0xa0], edx
jmp 0x4c992e
lea edx, [esp + 0xa0]
call fcn.004b65e0
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0x68]
movzx eax, al
mov dword [esp + 0xb0], eax
cmp edx, 0x18003
ja 0x4ce1d7
mov edi, dword [esp + 0x5c]
lea esi, [edi*4 + 3]
add esi, edi
cmp esi, edx
cmovg esi, edx
cmp dword [esp + 0x4c], 0
mov dword [esp + 0x60], esi
jne 0x4c99c0
cmp dword [esp + 0xb4], esi
jge 0x4c99c0
mov ecx, dword [esp + 0x50]
xor eax, eax
mov word [esp + 0x8c], ax
xor edx, edx
mov dword [esp + 0x80], eax
lea eax, [esp + 0x70]
push eax
mov eax, dword [esp + 0x4c]
movzx eax, byte [eax + 0x17]
push eax
push esi
call fcn.004c3bb0
mov edx, eax
add esp, 0xc
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c90c2
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0xa0]
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x68], ecx
lea eax, [ecx + esi]
mov dword [esp + 0xa8], edx
mov esi, dword [esp + 0xb0]
add esi, ecx
mov dword [esp + 0x9c], eax
xor ecx, ecx
mov dword [esp + 0x98], esi
mov dword [esp + 0xac], 0
mov dword [esp + 0x64], ecx
test edi, edi
jle 0x4c9ad1
nop word [eax + eax]
cmp esi, eax
mov eax, dword [esp + 0x58]
jae 0x4c9aa1
mov dword [eax + ecx*4], edx
mov ecx, dword [esp + 0x98]
mov al, byte [ecx]
cmp al, 0x80
jae 0x4c9a2e
mov ecx, dword [esp + 0x64]
movzx edx, al
mov eax, dword [esp + 0x54]
mov dword [eax + ecx*4], edx
mov al, 1
jmp 0x4c9a3e
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x54]
lea edx, [eax + edx*4]
call fcn.004b65e0
mov esi, dword [esp + 0x98]
mov ecx, dword [esp + 0x64]
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x98], esi
mov eax, dword [eax + ecx*4]
cmp eax, 0xc
jb 0x4c9a80
mov edx, dword [esp + 0xa8]
add eax, 0xfffffff4
shr eax, 1
add edx, eax
mov dword [esp + 0xa8], edx
adc dword [esp + 0xac], 0
jmp 0x4c9aba
mov edx, dword [esp + 0xa8]
movzx eax, byte [eax + 0x5494dc]
add edx, eax
mov dword [esp + 0xa8], edx
adc dword [esp + 0xac], 0
jmp 0x4c9aba
mov dword [eax + ecx*4], 0
mov edx, dword [esp + 0xa8]
mov esi, dword [esp + 0x98]
mov ecx, dword [esp + 0x64]
inc ecx
mov dword [esp + 0x64], ecx
cmp ecx, dword [esp + 0x5c]
jge 0x4c9ad1
mov eax, dword [esp + 0x9c]
jmp 0x4c9a00
lea ecx, [esp + 0x70]
call fcn.004c3060
push dword [esp + 0x94]
push dword [esp + 0x84]
call fcn.004b3560
mov edx, dword [esp + 0xa0]
add esp, 8
mov esi, dword [esp + 0x9c]
mov eax, 1
mov dword [esp + 0x84], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
mov word [esp + 0x8c], ax
cmp edx, esi
ja 0x4c9df8
mov edi, dword [esp + 0xac]
mov ecx, dword [esp + 0x30]
test edi, edi
ja 0x4c9df8
mov eax, dword [esp + 0xa8]
jb 0x4c9b58
cmp eax, ecx
ja 0x4c9df8
cmp edx, esi
jne 0x4c9b6c
cmp eax, ecx
jne 0x4c9df8
test edi, edi
jne 0x4c9df8
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x44]
cmp dword [eax + ecx*4], 0
je 0x4c9d46
cmp dword [esp + 0x4c], 0
je 0x4c9bad
mov ecx, dword [esp + 0x6c]
call fcn.004c3060
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
mov ecx, dword [eax + esi*4]
add ecx, dword [esp + 0x4c]
mov edx, dword [edx + esi*4]
jmp 0x4c9d2a
mov eax, dword [edx + ecx*4]
cmp eax, 0xc
jb 0x4c9bbc
add eax, 0xfffffff4
shr eax, 1
jmp 0x4c9bc3
movzx eax, byte [eax + 0x5494dc]
mov edi, dword [esp + 0x6c]
lea ecx, [esp + 0x70]
mov dword [esp + 0x60], eax
call fcn.004c3060
mov ecx, dword [esp + 0x80]
mov esi, dword [esp + 0x94]
test ecx, ecx
je 0x4c9c14
test esi, esi
je 0x4c9c83
cmp esi, dword [ecx + 0xf0]
jb 0x4c9c14
cmp esi, dword [ecx + 0xf4]
jae 0x4c9c14
mov eax, dword [ecx + 0xec]
mov dword [esi], eax
dec dword [ecx + 0xe4]
mov dword [ecx + 0xec], esi
jmp 0x4c9c83
test esi, esi
je 0x4c9c83
cmp dword [0x562cd0], 0
je 0x4c9c79
mov eax, dword [0x5654a8]
test eax, eax
je 0x4c9c34
push eax
call dword [0x562d18]
add esp, 4
push esi
call dword [0x562cf4]
mov ecx, dword [0x565330]
neg eax
add ecx, eax
add esp, 4
mov eax, dword [0x565354]
cmp ecx, eax
mov dword [0x565330], ecx
cmovg eax, ecx
push esi
mov dword [0x565354], eax
call dword [0x562cec]
mov eax, dword [0x5654a8]
add esp, 4
test eax, eax
je 0x4c9c83
push eax
call dword [0x562d20]
jmp 0x4c9c80
push esi
call dword [0x562cec]
add esp, 4
mov dword [esp + 0x84], 0
mov eax, 1
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
movups xmm0, xmmword [edi]
movups xmmword [esp + 0x70], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esp + 0x80], xmm0
movq xmm0, qword [edi + 0x20]
movq qword [esp + 0x90], xmm0
mov word [edi + 0x1c], ax
lea eax, [esp + 0x70]
mov dword [edi + 0x20], 0
mov dword [edi + 0x24], 0
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x50]
push eax
mov eax, dword [esp + 0x4c]
movzx eax, byte [eax + 0x17]
push eax
mov eax, dword [esp + 0x60]
push dword [esp + 0x68]
mov edx, dword [eax + edx*4]
call fcn.004c3bb0
mov edx, eax
add esp, 0xc
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c90c2
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x68], ecx
mov edx, dword [eax + edx*4]
push dword [esp + 0x6c]
call fcn.004c6010
mov eax, dword [esp + 0x70]
add esp, 4
mov cl, byte [esp + 0xe8]
mov byte [eax + 0x1f], cl
jmp 0x4c9da4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
cmp byte [ecx + eax*4 + 1], 0xf8
jne 0x4c9da4
mov edi, dword [ecx + eax*4 + 0x10]
mov esi, dword [esp + 0x6c]
mov ecx, esi
call fcn.004c3060
movups xmm0, xmmword [edi]
mov eax, 0x400
movups xmmword [esi], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esi + 0x10], xmm0
mov dword [esi + 0x20], 0
test word [edi + 0x1c], ax
jne 0x4c9d8c
mov eax, dword [edi + 0x14]
cmp eax, dword [edi + 0x24]
jne 0x4c9da4
mov ax, word [esi + 0x1c]
mov ecx, 0xebff
and ax, cx
mov ecx, 0x800
or ax, cx
mov word [esi + 0x1c], ax
cmp dword [esp + 0x94], 0
je 0x4c9de4
mov eax, dword [esp + 0x6c]
mov ecx, 0xe7ff
and word [eax + 0x1c], cx
mov ecx, 0x200
mov eax, dword [esp + 0x6c]
or word [eax + 0x1c], cx
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x84]
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x94]
mov dword [eax + 0x24], ecx
mov ecx, dword [esp + 0x6c]
call fcn.004c2ef0
mov edx, eax
mov dword [esp + 0xc], edx
jmp 0x4c90c2
mov edx, 0xb
mov dword [esp + 0xc], edx
jmp 0x4c90c2
mov dword [esp + 0x30], 0
jmp case.0x4c7e70.10
mov eax, dword [esi + edi*4 + 0x10]
mov dword [esp + 0x30], eax
mov eax, dword [esi + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea esi, [eax + ecx*8]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x34], esi
mov eax, dword [eax + edi*4 + 8]
mov dword [esp + 0x3c], esi
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [esi + eax*8]
mov dword [esp + 0x38], eax
cmp esi, eax
ja case.0x4c7e70.10
mov dword [esp + 0x3c], esi
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x4c9e6b
mov ecx, esi
call fcn.004c2f50
mov esi, dword [esp + 0x3c]
push dword [esp + 0xe8]
mov ecx, esi
mov eax, 0x66666667
sub ecx, dword [esp + 0x38]
imul ecx
mov eax, dword [esp + 0x34]
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dl, byte [ecx + eax]
mov ecx, esi
call fcn.004c7b90
mov esi, dword [esp + 0x40]
add esp, 4
add esi, 0x28
mov dword [esp + 0x3c], esi
cmp esi, dword [esp + 0x38]
jbe 0x4c9e55
jmp case.0x4c7e70.10
mov ecx, dword [esp + 0x14]
xor esi, esi
xorps xmm0, xmm0
mov dword [esp + 0x50], esi
xor edx, edx
movlpd qword [esp + 0x38], xmm0
mov dword [esp + 0x40], edx
movlpd qword [esp + 0x48], xmm0
mov eax, dword [ecx + edi*4 + 4]
mov dword [esp + 0x64], eax
mov ecx, dword [ecx + edi*4 + 0x10]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x28], ecx
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov dword [esp + 0x18], esi
mov eax, dword [eax + 0x58]
lea edi, [eax + ecx*8]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x5c], edi
mov eax, dword [ecx + eax*4 + 8]
mov dword [esp + 0x64], eax
mov dword [esp + 0x34], edi
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ecx, [edi + eax*8]
mov eax, dword [esp + 8]
mov dword [esp + 0x60], ecx
movzx eax, byte [eax + 0x6f]
mov dword [esp + 0x6c], eax
cmp edi, ecx
ja 0x4ca035
mov dword [esp + 0x34], edi
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x4c9f78
push dword [esp + 0xe8]
mov esi, edi
mov eax, 0x66666667
sub esi, dword [esp + 0x60]
imul esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, byte [eax + ecx]
mov ecx, edi
call fcn.004c7b90
mov ecx, dword [esp + 0x6c]
add esp, 4
mov eax, dword [esp + 0x50]
mov edi, dword [esp + 0x34]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x18], eax
mov eax, 0x4000
test word [edi + 0x1c], ax
je 0x4c9fa4
cmp dword [edi + 0x18], 0
jle 0x4c9fa4
mov ecx, edi
call fcn.004c2f50
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x50]
mov edi, dword [esp + 0x34]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x6c]
mov ecx, edi
call fcn.004c5f30
mov edx, eax
mov dword [esp + 0x58], edx
cmp edx, 0xc
jb 0x4c9fc1
lea eax, [edx - 0xc]
shr eax, 1
jmp 0x4c9fc8
movzx eax, byte [edx + 0x5494dc]
add dword [esp + 0x38], eax
mov dword [esp + 0xf8], eax
adc dword [esp + 0x3c], 0
xor ecx, ecx
mov dword [esp + 0x74], eax
xor esi, esi
shrd edx, ecx, 7
inc esi
shr ecx, 7
mov eax, edx
or eax, ecx
je 0x4c9ff3
cmp esi, 9
jl 0x4c9fe0
mov edx, dword [esp + 0x40]
mov eax, 0x4000
add edx, esi
mov esi, dword [esp + 0x18]
mov dword [esp + 0x40], edx
test word [edi + 0x1c], ax
je 0x4ca010
add esi, dword [edi]
jmp 0x4ca01c
xor eax, eax
cmp dword [esp + 0xf8], eax
cmovne esi, eax
add edi, 0x28
mov dword [esp + 0x50], esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x34], edi
cmp edi, dword [esp + 0x60]
jbe 0x4c9f31
mov eax, edx
xor edi, edi
cdq
mov ecx, eax
nop dword [eax]
shrd ecx, edx, 7
inc edi
shr edx, 7
mov eax, ecx
or eax, edx
je 0x4ca053
cmp edi, 9
jl 0x4ca040
mov eax, dword [esp + 0x40]
add eax, edi
mov dword [esp + 0xd8], edi
mov dword [esp + 0x40], eax
cdq
mov dword [esp + 0x54], edi
mov ecx, eax
xor edi, edi
nop dword [eax]
shrd ecx, edx, 7
inc edi
shr edx, 7
mov eax, ecx
or eax, edx
je 0x4ca083
cmp edi, 9
jl 0x4ca070
mov eax, dword [esp + 0x40]
cmp dword [esp + 0xd8], edi
jge 0x4ca095
inc eax
mov dword [esp + 0x40], eax
cdq
mov edi, eax
mov ecx, edx
mov eax, esi
mov esi, dword [esp + 0x10]
cdq
sub edi, eax
sbb ecx, edx
add edi, dword [esp + 0x38]
mov dword [esp + 0x48], edi
adc ecx, dword [esp + 0x3c]
mov dword [esp + 0x4c], ecx
mov eax, dword [esi + 0x48]
cdq
cmp ecx, edx
jg 0x4ce3bd
jl 0x4ca0cb
cmp edi, eax
ja 0x4ce3bd
mov ecx, dword [esp + 0x14]
mov edx, edi
mov eax, dword [esp + 0x24]
push 0
mov eax, dword [ecx + eax*4 + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x58]
lea esi, [eax + ecx*8]
mov ecx, esi
mov dword [esp + 0x1c], esi
call fcn.004c2d60
add esp, 4
test eax, eax
jne 0x4ce192
mov ecx, dword [esp + 0x40]
mov edx, dword [esi + 0x14]
mov dword [esp + 0x30], edx
cmp ecx, 0x80
jae 0x4ca11c
mov al, cl
mov byte [edx], al
mov eax, 1
jmp 0x4ca147
test ecx, 0xffffc000
jne 0x4ca13a
mov eax, ecx
shr eax, 7
or al, 0x80
and cl, 0x7f
mov byte [edx], al
mov eax, 2
mov byte [edx + 1], cl
jmp 0x4ca147
push 0
push ecx
mov ecx, edx
call fcn.004b6360
add esp, 8
mov esi, dword [esp + 0x5c]
movzx edi, al
mov dword [esp + 0x70], edi
mov dword [esp + 0x34], esi
cmp esi, dword [esp + 0x60]
ja 0x4ca1dc
mov edx, dword [esp + 0x6c]
mov ecx, esi
call fcn.004c5f30
mov ecx, eax
mov dword [esp + 0x58], ecx
cmp ecx, 0x80
jae 0x4ca189
mov cl, al
mov eax, dword [esp + 0x30]
mov byte [edi + eax], cl
mov eax, 1
jmp 0x4ca1ba
mov edx, dword [esp + 0x30]
add edx, edi
test ecx, 0xffffc000
jne 0x4ca1ad
mov eax, ecx
shr eax, 7
or al, 0x80
and cl, 0x7f
mov byte [edx], al
mov eax, 2
mov byte [edx + 1], cl
jmp 0x4ca1ba
push 0
push ecx
mov ecx, edx
call fcn.004b6360
add esp, 8
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x70]
add esi, 0x28
movzx eax, al
add edi, eax
mov dword [esp + 0x34], esi
mov dword [esp + 0x70], edi
cmp esi, dword [esp + 0x60]
jbe 0x4ca160
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x34], esi
cmp esi, dword [esp + 0x60]
ja 0x4ca2ea
nop word [eax + eax]
mov eax, dword [esp + 0x48]
mov ecx, esi
mov edx, dword [esp + 0x6c]
sub eax, edi
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x30]
add eax, edi
mov dword [esp + 0x28], eax
call fcn.004c5f30
mov dword [esp + 0xf8], eax
lea ecx, [eax - 1]
cmp ecx, 6
ja 0x4ca26f
mov ecx, eax
cmp eax, 7
jne 0x4ca25e
mov edx, dword [esi + 8]
mov eax, dword [esi + 0xc]
movzx ecx, byte [ecx + 0x5494dc]
mov dword [esp + 0x24], ecx
test ecx, ecx
je 0x4ca258
mov esi, dword [esp + 0x28]
dec ecx
mov byte [ecx + esi], dl
shrd edx, eax, 8
shr eax, 8
test ecx, ecx
jne 0x4ca241
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
jmp 0x4ca2d3
mov edx, dword [esi]
mov eax, dword [esi + 4]
cmp ecx, 0xc
jb 0x4ca22e
add ecx, 0xfffffff4
shr ecx, 1
jmp 0x4ca235
cmp eax, 0xc
jb 0x4ca2d1
mov edi, dword [esi + 0x18]
push edi
push dword [esi + 0x14]
mov dword [esp + 0x2c], edi
push dword [esp + 0x30]
call fcn.00506990
mov eax, 0x4000
add esp, 0xc
test word [esi + 0x1c], ax
je 0x4ca2c3
add edi, dword [esi]
cmp edi, dword [esp + 0xd8]
cmova edi, dword [esp + 0xd8]
mov eax, edi
mov dword [esp + 0x24], edi
sub eax, dword [esi + 0x18]
push eax
mov eax, dword [esp + 0x2c]
add eax, dword [esi + 0x18]
push 0
push eax
call fcn.00506f10
add esp, 0xc
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
jmp 0x4ca2d3
xor eax, eax
add esi, 0x28
add edi, eax
mov dword [esp + 0x70], edi
mov dword [esp + 0x34], esi
cmp esi, dword [esp + 0x60]
jbe 0x4ca1f0
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x48]
mov dword [edi + 0x18], eax
mov eax, 0x410
mov word [edi + 0x1c], ax
mov dword [edi + 0x20], 0
mov eax, dword [esp + 0x50]
test eax, eax
je 0x4ca318
mov dword [edi], eax
mov eax, 0x4410
mov word [edi + 0x1c], ax
mov byte [edi + 0x1f], 1
jmp case.0x4c7e70.10
mov ecx, dword [esi + edi*4 + 4]
mov edi, dword [esp + 8]
mov eax, dword [edi + 0x34]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
mov dword [esp + 0x38], ecx
test ecx, ecx
je 0x4ca348
lea edx, [esp + 0x30]
call fcn.004c2a10
mov dword [esp + 0xc], eax
jmp 0x4ca351
xorps xmm0, xmm0
movlpd qword [esp + 0x30], xmm0
mov edx, dword [esp + 0x18]
mov eax, 4
mov word [edx + 0x1c], ax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov edx, dword [esp + 0xc]
jmp 0x4c90c6
mov edx, dword [esi + edi*4 + 4]
mov dword [esp + 0x30], edx
mov eax, dword [esi + edi*4 + 0x10]
mov esi, dword [esp + 0x10]
mov dword [esp + 0xd8], edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x34], eax
test edx, edx
jne 0x4ca4bb
cmp dword [esi + 0x90], edx
jg 0x4ce1f4
test eax, eax
je 0x4ca3c3
mov ecx, dword [esp + 0x28]
cmp byte [ecx], 0
je 0x4ca3bc
mov eax, ecx
inc eax
cmp byte [eax], 0
jne 0x4ca3b6
sub eax, ecx
and eax, 0x3fffffff
mov dword [esp + 0x38], eax
lea edx, [eax + 0x19]
cmp byte [esi + 0x1e], 0
je 0x4ca3e5
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
mov dword [esp + 0x3c], 0
jmp 0x4c90ca
cmp byte [esi + 0xe2], 0
je 0x4ca42c
movzx eax, word [esi + 0xe0]
cmp edx, eax
ja 0x4ca42c
mov ecx, dword [esi + 0xec]
test ecx, ecx
je 0x4ca42c
mov eax, dword [ecx]
mov dword [esi + 0xec], eax
mov eax, dword [esi + 0xe4]
inc eax
mov dword [esi + 0xe4], eax
cmp eax, dword [esi + 0xe8]
jle 0x4ca426
mov dword [esi + 0xe8], eax
mov dword [esp + 0x3c], ecx
jmp 0x4ca44b
push edx
call fcn.004b3470
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x4ca43f
mov byte [esi + 0x1e], 1
mov dword [esp + 0x3c], ecx
test ecx, ecx
je 0x4c86d3
lea eax, [ecx + 0x18]
mov dword [ecx], eax
mov eax, dword [esp + 0x38]
inc eax
push eax
mov eax, dword [esp + 0x40]
push dword [esp + 0x38]
push dword [eax]
call fcn.00506990
add esp, 0xc
cmp byte [esi + 0x1c], 0
je 0x4ca47b
mov byte [esi + 0x1c], 0
mov byte [esi + 0x1cc], 1
jmp 0x4ca481
inc dword [esi + 0x1c4]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esi + 0x1c0]
mov edi, dword [esp + 8]
mov dword [eax + 0x10], ecx
mov eax, dword [esp + 0x3c]
mov edx, dword [esi + 0x1d4]
mov ecx, dword [esi + 0x1d0]
mov dword [esi + 0x1c0], eax
mov eax, dword [esp + 0x3c]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0xc]
jmp 0x4c90ca
xor ecx, ecx
mov dword [esp + 0x48], ecx
mov edi, dword [esi + 0x1c0]
mov dword [esp + 0x40], edi
test edi, edi
je 0x4ce244
mov esi, dword [edi]
mov edx, eax
mov cl, byte [esi]
test cl, cl
je 0x4ca510
mov al, cl
sub esi, edx
movzx ecx, byte [edx]
mov byte [esp + 0x103], al
movzx eax, al
mov al, byte [eax + 0x54a7a0]
cmp al, byte [ecx + 0x54a7a0]
jne 0x4ca509
mov al, byte [edx + esi + 1]
inc edx
mov cl, al
test al, al
jne 0x4ca4e1
jmp 0x4ca510
mov cl, byte [esp + 0x103]
movzx eax, cl
movzx ecx, byte [eax + 0x54a7a0]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x54a7a0]
sub ecx, eax
je 0x4ca543
inc dword [esp + 0x48]
mov eax, dword [edi + 0x10]
mov edi, eax
mov dword [esp + 0x40], edi
test eax, eax
je 0x4ce244
mov eax, dword [esp + 0x28]
jmp 0x4ca4d3
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0xd8]
mov esi, dword [esp + 0x10]
test edi, edi
je 0x4ce244
cmp dword [esi + 0x90], 0
jg 0x4ca743
cmp edx, 2
jne 0x4ca579
cmp dword [esi + 0x8c], 1
jg 0x4ca743
cmp dword [edi + 0x10], 0
jne 0x4ca5d0
cmp byte [esi + 0x1cc], 0
je 0x4ca5d0
mov esi, 1
mov dword [esp + 0x24], esi
cmp edx, esi
jne 0x4ca5da
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 8]
mov ecx, edi
mov byte [eax + 0x1c], 1
call fcn.004c5950
cmp eax, 5
je 0x4ce223
mov ecx, dword [esp + 0x10]
mov byte [ecx + 0x1cc], 0
mov eax, dword [edi + 0x64]
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x30]
mov dword [esp + 0xc], eax
jmp 0x4ca6a2
mov dword [esp + 0x24], 0
jmp 0x4ca5de
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0x1c4]
xor esi, esi
sub eax, ecx
mov dword [esp + 0x4c], esi
mov ecx, dword [esp + 0x10]
dec eax
mov dword [esp + 0x48], eax
cmp dword [ecx + 4], esi
jle 0x4ca66b
nop word [eax + eax]
mov eax, dword [esp + 0x10]
mov ecx, esi
add ecx, ecx
xor edi, edi
mov dword [esp + 0xc], edi
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*8 + 4]
test eax, eax
je 0x4ca651
cmp byte [eax + 8], 2
jne 0x4ca651
mov esi, dword [eax + 4]
push dword [esp + 0x48]
mov ecx, dword [esi]
call fcn.004bd5f0
mov edx, eax
add esp, 4
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4ca645
mov ecx, esi
call fcn.004bec30
mov dword [esp + 0xc], eax
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x4c]
test edi, edi
jne 0x4ce337
mov ecx, dword [esp + 0x10]
inc esi
mov dword [esp + 0x4c], esi
cmp esi, dword [ecx + 4]
jl 0x4ca600
mov edi, dword [esp + 0x40]
cmp edx, 2
jne 0x4ca69e
test byte [ecx + 0xc], 0x10
je 0x4ca69e
mov eax, dword [ecx + 0x88]
test eax, eax
je 0x4ca68b
mov byte [eax + 0x6e], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x4ca680
xor edx, edx
call fcn.004d9190
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [ecx + 0x1c0]
cmp eax, edi
je 0x4ca6e6
nop dword [eax]
mov dword [esp + 0x44], eax
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x1c0], eax
push dword [esp + 0x44]
push ecx
call fcn.004b3560
mov ecx, dword [esp + 0x18]
add esp, 8
dec dword [ecx + 0x1c4]
mov eax, dword [ecx + 0x1c0]
mov edi, dword [esp + 0x40]
cmp eax, edi
jne 0x4ca6b0
mov edx, dword [esp + 0x30]
cmp edx, 1
jne 0x4ca720
mov eax, dword [edi + 0x10]
mov dword [ecx + 0x1c0], eax
push dword [esp + 0x40]
push ecx
call fcn.004b3560
mov edx, dword [esp + 0x14]
add esp, 8
mov edi, dword [esp + 8]
test esi, esi
mov esi, dword [esp + 0x10]
jne 0x4c90ca
dec dword [esi + 0x1c4]
jmp 0x4c90ca
mov esi, dword [esp + 0x10]
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
mov dword [esi + 0x1d0], eax
mov dword [esi + 0x1d4], ecx
jmp 0x4c90ca
mov edi, dword [esp + 8]
cmp edx, 2
mov ecx, 0x54eae8
mov eax, 0x54eadc
cmovne eax, ecx
push eax
push 0x54eaf0
lea eax, [edi + 0x68]
push esi
push eax
call fcn.004b39d0
mov edx, 5
add esp, 0x10
mov dword [esp + 0xc], edx
jmp 0x4c90ca
mov edx, dword [esi + edi*4 + 4]
mov dword [esp + 0x30], edx
mov ecx, dword [esi + edi*4 + 8]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x34], ecx
test edx, edx
je 0x4ca7d2
cmp byte [esi + 0x1c], 0
jne 0x4ca7d2
mov dword [esp + 0x38], 1
test ecx, ecx
je 0x4ca7ba
cmp dword [esi + 0x8c], 1
jle 0x4ca7da
mov dword [esp + 0xc], 5
mov eax, 0x54eb24
jmp 0x4ca808
cmp dword [esi + 0x90], 0
jle 0x4ca7da
mov dword [esp + 0xc], 5
mov eax, 0x54eb60
jmp 0x4ca808
mov dword [esp + 0x38], 0
movzx eax, byte [esi + 0x1c]
cmp edx, eax
jne 0x4ce27b
test edx, edx
jne 0x4ca7f1
mov eax, 0x54eb98
jmp 0x4ca800
test ecx, ecx
mov eax, 0x54ebc8
mov ecx, 0x54ebf4
cmove eax, ecx
mov dword [esp + 0xc], 1
mov edi, dword [esp + 8]
mov ecx, edi
push eax
push esi
lea eax, [ecx + 0x68]
push eax
call fcn.004b39d0
mov edx, dword [esp + 0x18]
add esp, 0xc
jmp 0x4c90ca
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + edi*4 + 4]
add ecx, ecx
mov eax, dword [eax + 8]
mov ecx, dword [eax + ecx*8 + 4]
mov dword [esp + 0x30], ecx
test ecx, ecx
je case.0x4c7e70.10
mov edx, dword [esi + edi*4 + 8]
call fcn.004becc0
mov edx, eax
mov dword [esp + 0xc], edx
cmp edx, 5
je 0x4ce2eb
test edx, edx
jne 0x4ce33b
cmp dword [esi + edi*4 + 8], eax
mov edi, dword [esp + 8]
je 0x4c90c6
cmp byte [edi + 0x71], al
je 0x4c90c6
mov esi, dword [esp + 0x10]
cmp byte [esi + 0x1c], al
je 0x4ca88f
cmp dword [esi + 0x8c], 1
jle 0x4c90ca
mov edx, dword [edi + 0xd8]
test edx, edx
jne 0x4ca8b1
mov edx, dword [esi + 0x1c4]
inc dword [esi + 0x1c8]
add edx, dword [esi + 0x1c8]
mov dword [edi + 0xd8], edx
mov eax, dword [esp + 0x30]
cmp byte [eax + 8], 2
jne 0x4ca8d1
mov ecx, dword [eax + 4]
cmp byte [ecx + 0x10], 0
jne 0x4ca8d1
mov ecx, dword [ecx]
call fcn.004bd4a0
mov dword [esp + 0xc], eax
jmp 0x4ca8d9
mov dword [esp + 0xc], 2
mov eax, dword [esi + 0x1d0]
mov ecx, dword [esi + 0x1d4]
mov edx, dword [esp + 0xc]
mov dword [edi + 0xd0], eax
mov dword [edi + 0xd4], ecx
jmp 0x4c90ca
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x34], ecx
add ecx, ecx
mov edx, dword [esi + edi*4 + 0xc]
mov dword [esp + 0x38], edx
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*8 + 4]
mov edi, dword [eax + 4]
mov eax, dword [edi + 0xc]
mov ecx, dword [eax + 0x40]
movzx eax, byte [ecx + edx*4 + 0x24]
movzx esi, byte [ecx + edx*4 + 0x25]
shl eax, 8
or esi, eax
movzx eax, byte [ecx + edx*4 + 0x26]
shl esi, 8
or esi, eax
movzx eax, byte [ecx + edx*4 + 0x27]
shl esi, 8
or esi, eax
mov dword [esp + 0x30], esi
cmp edx, 4
jne 0x4ca958
test esi, esi
je 0x4ca958
mov byte [edi + 0x10], 1
mov esi, dword [esp + 0x30]
mov eax, esi
cdq
jmp 0x4c8d7f
mov eax, dword [esi + edi*4 + 4]
mov ecx, dword [esp + 0x10]
shl eax, 4
add eax, dword [ecx + 8]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
call fcn.004c3180
mov ecx, dword [esp + 0x2c]
mov dword [ecx], eax
mov ax, word [ecx + 0x1c]
mov dword [ecx + 4], edx
mov edx, 0xbf04
and ax, dx
or ax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [ecx]
mov esi, dword [esi + edi*4 + 8]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0xc]
mov edi, dword [ecx + 0x40]
mov ecx, dword [ecx + 0x44]
call fcn.004bd090
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4ca9eb
mov ecx, dword [esp + 0xd8]
mov eax, ecx
shr eax, 0x18
mov byte [edi + esi*4 + 0x24], al
mov eax, ecx
shr eax, 0x10
mov byte [edi + esi*4 + 0x25], al
mov eax, ecx
shr eax, 8
mov byte [edi + esi*4 + 0x26], al
mov byte [edi + esi*4 + 0x27], cl
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
mov eax, dword [esi + edx*4 + 8]
cmp eax, 1
jne 0x4caa15
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
or dword [eax + 0xc], 0x10
jmp 0x4caa2a
cmp eax, 2
jne 0x4caa2a
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x2c]
mov al, byte [eax]
mov byte [ecx + 0x48], al
cmp dword [esi + edx*4 + 4], 1
mov esi, dword [esp + 0x10]
jne 0x4c86d3
mov eax, dword [esi + 0x88]
test eax, eax
je 0x4caa4e
mov byte [eax + 0x6e], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x4caa43
mov edi, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov byte [edi + 0x6e], 0
jmp 0x4c90ca
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + edi*4 + 4]
add ecx, ecx
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*8 + 4]
mov dword [esp + 0x34], eax
test eax, eax
je 0x4caaa2
mov eax, dword [eax + 4]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax + 0x40]
movzx edx, byte [ecx + 0x28]
movzx eax, byte [ecx + 0x29]
shl edx, 8
or edx, eax
movzx eax, byte [ecx + 0x2a]
shl edx, 8
or edx, eax
movzx eax, byte [ecx + 0x2b]
shl edx, 8
or edx, eax
jmp 0x4caaa4
xor edx, edx
mov dword [esp + 0x30], edx
cmp edx, dword [esi + edi*4 + 8]
je case.0x4c7e70.10
mov eax, dword [esp + 8]
push dword [eax + 0x68]
push dword [esp + 0x14]
call fcn.004b3560
add esp, 8
mov eax, 0x54ec20
nop word [eax + eax]
inc eax
cmp byte [eax], 0
jne 0x4caad0
mov ecx, dword [esp + 0x10]
sub eax, 0x54ec20
and eax, 0x3fffffff
cmp byte [ecx + 0x1e], 0
lea edi, [eax + 1]
je 0x4caaf1
xor esi, esi
jmp 0x4cab4d
cmp byte [ecx + 0xe2], 0
je 0x4caba9
movzx eax, word [ecx + 0xe0]
cmp edi, eax
ja 0x4caba9
mov esi, dword [ecx + 0xec]
test esi, esi
je 0x4caba9
mov eax, dword [esi]
mov dword [ecx + 0xec], eax
mov eax, dword [ecx + 0xe4]
inc eax
mov dword [ecx + 0xe4], eax
cmp eax, dword [ecx + 0xe8]
jle 0x4cab3e
mov dword [ecx + 0xe8], eax
push edi
push 0x54ec20
push esi
call fcn.00506990
add esp, 0xc
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov dword [edi + 0x68], esi
mov esi, dword [esp + 0x10]
mov edx, dword [ecx + eax*4 + 4]
mov ecx, edx
add ecx, ecx
mov eax, dword [esi + 8]
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [esp + 0x30]
je 0x4cab7e
mov ecx, esi
call fcn.004d9190
mov eax, dword [esi + 0x88]
test eax, eax
je 0x4cab9b
nop dword [eax + eax]
mov byte [eax + 0x6e], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x4cab90
mov edx, 0x11
mov dword [esp + 0xc], edx
jmp 0x4c90ca
push edi
call fcn.004b3470
mov esi, eax
add esp, 4
test esi, esi
jne 0x4cab3e
mov eax, dword [esp + 0x10]
mov byte [eax + 0x1e], 1
jmp 0x4cab4d
mov eax, dword [esp + 8]
cmp byte [eax + 0x6e], 0
jne 0x4ce313
mov eax, dword [esp + 0x14]
xor edx, edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], edx
mov esi, dword [esi + edi*4 + 8]
mov dword [esp + 0x38], esi
mov ecx, dword [eax + edi*4 + 0xc]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x3c], ecx
shl ecx, 4
add ecx, dword [eax + 8]
mov dword [esp + 0x4c], ecx
mov eax, dword [ecx + 4]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x14]
cmp byte [eax + edi*4], 0x27
jne 0x4cac29
mov dword [esp + 0x40], 1
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 8]
mov al, byte [eax + 0x48]
cmp al, byte [ecx + 0x6f]
jae 0x4cac2d
mov byte [ecx + 0x6f], al
jmp 0x4cac2d
mov dword [esp + 0x40], edx
mov ecx, dword [esp + 0x14]
cmp byte [ecx + edi*4 + 3], dl
je 0x4cac7e
mov eax, dword [esp + 8]
lea ecx, [esi + esi*4]
mov eax, dword [eax + 0x58]
lea esi, [eax + ecx*8]
mov ecx, esi
mov dword [esp + 0xe4], esi
call fcn.004c3180
mov dword [esi], eax
mov ecx, 0xbf04
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 4], edx
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esi]
mov dword [esp + 0x38], eax
cmp eax, 2
jl 0x4ce308
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x14]
mov al, byte [esi + edi*4 + 1]
cmp al, 0xfa
jne 0x4cacaf
mov eax, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 0x10]
mov dword [esp + 0x34], ecx
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x49]
mov byte [ecx + 4], al
mov eax, dword [esp + 0x34]
movzx edx, word [eax + 6]
inc edx
jmp 0x4cacb7
cmp al, 0xf2
jne 0x4cacbb
mov edx, dword [esi + edi*4 + 0x10]
mov dword [esp + 0x30], edx
push 1
push dword [esp + 0x40]
push edx
mov edx, dword [esi + edi*4 + 4]
mov edi, dword [esp + 0x14]
mov ecx, edi
call fcn.004c79b0
add esp, 0xc
mov dword [esp + 0x48], eax
test eax, eax
je 0x4ce196
mov byte [eax + 0x14], 1
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x34]
mov dword [esp + 0xf8], ecx
cmp dword [esp + 0xf8], 0
mov ecx, dword [esp + 0x38]
mov esi, dword [eax]
mov dword [esp + 0x28], edi
mov edi, dword [edi + 4]
mov dword [esp + 0xec], edx
mov dword [esp + 0xd8], ecx
je 0x4cad36
cmp byte [edi + 0x10], 0
je 0x4cad36
mov dword [eax + 0x28], edx
mov dword [esp + 0xc], 8
jmp 0x4cadd8
cmp ecx, 1
jne 0x4cad83
mov ecx, dword [edi]
lea edx, [esp + 0x124]
mov dword [esp + 0x124], 0xffffffff
call fcn.004bb6d0
cmp dword [esp + 0x124], 0
jne 0x4cad75
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x34]
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0x48]
mov dword [eax], 0
jmp 0x4cadd0
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0xec]
or eax, 0xffffffff
mov dword [esi + 0x14], ecx
mov word [esi + 0x5c], ax
mov eax, dword [esp + 0x28]
mov dword [esi], eax
mov eax, dword [esp + 0xf8]
mov dword [esi + 0x10], edx
mov dword [esi + 4], edi
mov byte [esi + 0x40], al
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
test eax, eax
je 0x4cadb0
mov dword [eax + 0xc], esi
mov dword [edi + 8], esi
mov byte [esi + 0x43], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x34]
mov dword [ecx + 0x28], eax
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
cmp byte [ecx + eax*4 + 1], 0xfa
mov eax, dword [esp + 0x48]
setne cl
mov byte [eax + 0x16], cl
mov ecx, dword [esp + 0x48]
cmp byte [ecx + 0x16], 0
sete al
mov byte [ecx + 0x17], al
jmp case.0x4c7e70.10
mov edx, dword [esi + edi*4 + 4]
mov ecx, dword [esp + 8]
push 1
push 0xffffffffffffffff
push dword [esi + edi*4 + 8]
call fcn.004c79b0
add esp, 0xc
mov dword [esp + 0x30], eax
test eax, eax
je 0x4ce192
mov ecx, dword [esp + 0x10]
mov edx, ecx
mov byte [eax + 0x14], 1
mov esi, dword [esp + 0x30]
push 0x41e
mov eax, dword [ecx + 0xc]
add esi, 0x20
and eax, 0x1000
xor ecx, ecx
or eax, 0x800
shr eax, 0xb
push eax
push esi
call fcn.004be530
mov ecx, eax
add esp, 0xc
mov dword [esp + 0xc], ecx
test ecx, ecx
jne 0x4cb0d2
mov eax, dword [esi]
mov eax, dword [eax + 4]
cmp dword [eax + 0x24], ecx
jne 0x4cae97
mov eax, dword [eax]
mov eax, dword [eax + 0xa8]
mov dword [eax + 0x10], 0x1f4
mov eax, dword [eax + 0x28]
test eax, eax
je 0x4cae97
push 0x1f4
push eax
call dword [0x562d3c]
add esp, 8
jmp 0x4cae9f
test ecx, ecx
jne 0x4cb0d2
mov ecx, dword [esp + 0x30]
mov edx, 1
mov ecx, dword [ecx + 0x20]
call fcn.004becc0
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4cb0d2
mov eax, dword [esp + 0x14]
cmp dword [eax + edi*4 + 0x10], 0
mov eax, dword [esp + 0x30]
je 0x4cb02c
mov eax, dword [eax + 0x20]
lea edx, [esp + 0x138]
push ecx
lea ecx, [esp + 0x114]
push 1
push ecx
mov ecx, dword [eax + 4]
call fcn.004c00e0
add esp, 0xc
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4cb011
mov esi, dword [esp + 0x138]
lea edx, [eax + 0xa]
mov ecx, esi
call fcn.004be380
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4caf22
mov esi, dword [ecx + 0x10]
call fcn.004b85c0
mov ecx, esi
call fcn.004bc930
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
mov eax, dword [eax + edi*4 + 0x10]
mov esi, dword [ecx]
mov dword [esp + 0xd8], eax
mov eax, dword [ecx + 0x20]
mov dword [esp + 0xec], eax
mov edi, dword [eax + 4]
cmp byte [edi + 0x10], 0
je 0x4caf57
mov dword [esp + 0xc], 8
jmp 0x4cafe9
mov eax, dword [esp + 0x110]
cmp eax, 1
jne 0x4caf97
mov ecx, dword [edi]
lea edx, [esp + 0x12c]
mov dword [esp + 0x12c], 0xffffffff
call fcn.004bb6d0
cmp dword [esp + 0x12c], 0
jne 0x4caf90
mov dword [esp + 0xc], 0x10
jmp 0x4cafe5
mov eax, dword [esp + 0x110]
mov dword [esi + 0x14], eax
or eax, 0xffffffff
mov word [esi + 0x5c], ax
mov eax, dword [esp + 0xd8]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0xec]
mov dword [esi], eax
mov dword [esi + 4], edi
mov byte [esi + 0x40], 1
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
test eax, eax
je 0x4cafc8
mov dword [eax + 0xc], esi
mov dword [edi + 8], esi
mov byte [esi + 0x43], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
mov eax, dword [edx + eax*4 + 0x10]
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 8]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x28]
mov al, byte [edx + 0x49]
mov byte [ecx + 4], al
mov eax, dword [esp + 0x30]
mov byte [eax + 0x16], 0
mov ecx, dword [esp + 0x30]
cmp byte [ecx + 0x16], 0
sete al
mov byte [ecx + 0x17], al
jmp case.0x4c7e70.10
mov ecx, dword [eax + 0x20]
mov esi, dword [eax]
mov dword [esp + 0xd8], ecx
mov edi, dword [ecx + 4]
cmp byte [edi + 0x10], 0
je 0x4cb04e
mov dword [esp + 0xc], 8
jmp 0x4cb0ce
mov ecx, dword [edi]
lea edx, [esp + 0x114]
mov dword [esp + 0x114], 0xffffffff
call fcn.004bb6d0
cmp dword [esp + 0x114], 0
jne 0x4cb07b
mov dword [esp + 0xc], 0x10
jmp 0x4cb0ca
or eax, 0xffffffff
mov dword [esi + 0x14], 1
mov word [esi + 0x5c], ax
mov eax, dword [esp + 0xd8]
mov dword [esi + 0x10], 0
mov dword [esi], eax
mov dword [esi + 4], edi
mov byte [esi + 0x40], 1
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
test eax, eax
je 0x4cb0ad
mov dword [eax + 0xc], esi
mov dword [edi + 8], esi
mov byte [esi + 0x43], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x30]
mov byte [eax + 0x16], 1
mov ecx, dword [esp + 0x30]
cmp byte [ecx + 0x16], 0
sete al
mov byte [ecx + 0x17], al
jmp case.0x4c7e70.10
mov edx, dword [esi + edi*4 + 4]
mov ecx, dword [esp + 8]
push 0
push 0xffffffffffffffff
push dword [esi + edi*4 + 0xc]
call fcn.004c79b0
add esp, 0xc
mov dword [esp + 0x30], eax
test eax, eax
je 0x4ce192
mov byte [eax + 0x14], 1
mov eax, dword [esp + 0x30]
mov ecx, dword [esi + edi*4 + 8]
mov dword [eax + 0x24], ecx
mov eax, dword [esp + 0x30]
mov byte [eax + 0x16], 1
mov eax, dword [esp + 0x30]
mov byte [eax + 0x17], 0
jmp case.0x4c7e70.10
mov edx, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [edx + 0x34]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x4cb17b
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x4cb14d
call fcn.004be790
jmp 0x4cb158
mov ecx, dword [esi]
test ecx, ecx
je 0x4cb15c
call fcn.004befd0
mov edx, dword [esp + 8]
mov ecx, dword [esi + 0x38]
test ecx, ecx
je 0x4cb17b
mov eax, dword [esi + 0x3c]
mov byte [edx + 0x70], 1
push ecx
mov eax, dword [eax + 0x1c]
call eax
mov eax, dword [esp + 0xc]
add esp, 4
mov byte [eax + 0x70], 0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
mov ecx, dword [eax + edi*4 + 4]
mov edi, dword [esp + 8]
mov eax, dword [edi + 0x34]
mov dword [eax + ecx*4], 0
jmp 0x4c90c6
mov eax, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x34]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x38], ecx
cmp dword [ecx], 0
je 0x4c90b5
movzx eax, byte [esi + edi*4]
mov dword [esp + 0x34], eax
mov byte [ecx + 0x14], 0
mov ecx, dword [esp + 0x38]
cmp byte [ecx + 0x16], 0
je 0x4cb409
mov ecx, dword [esp + 0x2c]
call fcn.004c7ab0
mov ecx, dword [esp + 0x2c]
call fcn.004c3180
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x64], edx
mov byte [eax + 0x11], 0
movzx eax, word [ecx + 0x1c]
test al, 4
jne 0x4cb3ac
test al, 8
je 0x4c90b5
mov edi, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
test edi, edi
jne 0x4cb352
cmp esi, 0x80000000
jne 0x4cb352
movsd xmm0, qword [ecx + 8]
movsd xmm1, qword [esp + 0x148]
comisd xmm1, xmm0
ja 0x4cb248
comisd xmm0, xmmword [esp + 0x130]
jbe 0x4cb352
movsd xmm0, qword [esp + 0x130]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x30], 1
comisd xmm0, xmmword [ecx + 8]
jbe 0x4cb2b8
cmp eax, 0x2e
je 0x4cb272
cmp eax, 0x2d
jne 0x4cb341
mov eax, dword [esp + 0x38]
mov esi, dword [eax]
mov ecx, esi
call fcn.004bf5e0
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4ce33b
cmp byte [esi + 0x43], al
jne 0x4cb2a3
mov dword [esp + 0x30], 1
mov dword [esp + 0xc], edx
jmp 0x4cb336
mov ecx, esi
mov dword [esp + 0x30], 0
call fcn.004bf720
mov edx, eax
test edx, edx
jmp 0x4cb32c
cmp eax, 0x2b
je 0x4cb2c2
cmp eax, 0x2c
jne 0x4cb341
mov eax, dword [esp + 0x38]
mov esi, dword [eax]
cmp byte [esi + 0x43], 1
jne 0x4cb2ed
cmp byte [esi + 0x41], 0
je 0x4cb2ed
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc], 0
mov edx, dword [ecx + eax*4 + 8]
jmp 0x4c90b9
mov ecx, esi
call fcn.004bf5e0
mov ecx, eax
mov edx, ecx
mov dword [esp + 0xc], edx
test ecx, ecx
jne 0x4cb328
cmp byte [esi + 0x43], al
jne 0x4cb30f
mov dword [esp + 0x30], 1
jmp 0x4cb336
mov ecx, esi
mov dword [esp + 0x30], 0
call fcn.004bf800
mov ecx, eax
test ecx, ecx
sete al
mov byte [esi + 0x41], al
mov edx, ecx
test ecx, ecx
mov dword [esp + 0xc], edx
jne 0x4ce33b
cmp dword [esp + 0x30], 0
je 0x4c90c2
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + eax*4 + 8]
jmp 0x4c90b9
mov eax, dword [esp + 0x34]
cmp eax, 0x2b
je 0x4cb384
cmp eax, 0x2d
je 0x4cb384
mov edx, esi
mov ecx, edi
call fcn.0052ab80
mov eax, dword [esp + 0x2c]
comisd xmm0, xmmword [eax + 8]
jbe 0x4cb3b4
add edi, 0xffffffff
mov dword [esp + 0x60], edi
adc esi, 0xffffffff
mov dword [esp + 0x64], esi
jmp 0x4cb3b4
mov edx, esi
mov ecx, edi
call fcn.0052ab80
mov eax, dword [esp + 0x2c]
movsd xmm1, qword [eax + 8]
comisd xmm1, xmm0
jbe 0x4cb3b4
add edi, 1
mov dword [esp + 0x60], edi
adc esi, 0
mov dword [esp + 0x64], esi
jmp 0x4cb3b4
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x60]
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x30]
push eax
push 0
push esi
mov ecx, dword [ecx]
xor edx, edx
push edi
call fcn.004bf8e0
mov edx, eax
add esp, 0x10
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4ce33b
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
cmp dword [esp + 0x30], eax
jne 0x4cb481
mov eax, dword [esp + 0x38]
mov byte [eax + 0x11], 1
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
jmp 0x4cb481
mov eax, dword [esi + edi*4 + 0x10]
mov dword [esp + 0x58], eax
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x40], eax
mov ax, word [esp + 0x58]
mov word [esp + 0x44], ax
mov eax, dword [esp + 0x34]
cmp eax, 0x2e
je 0x4cb434
cmp eax, 0x2c
je 0x4cb434
xor eax, eax
jmp 0x4cb439
mov eax, 8
mov word [esp + 0x46], ax
mov eax, dword [esi + edi*4 + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea eax, [eax + edx*8]
mov dword [esp + 0x50], eax
lea edx, [esp + 0x40]
mov ecx, dword [ecx]
lea eax, [esp + 0x30]
push eax
push 0
push 0
push 0
call fcn.004bf8e0
mov edx, eax
add esp, 0x10
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4ce33b
mov eax, dword [esp + 0x38]
mov byte [eax + 0x11], dl
mov eax, dword [esp + 0x38]
mov byte [eax + 0x15], 0
mov eax, dword [esp + 0x38]
mov dword [eax + 0x44], 0
mov eax, dword [esp + 0x34]
cmp eax, 0x2d
je 0x4cb4d7
cmp eax, 0x2e
je 0x4cb4d7
mov ecx, dword [esp + 0x30]
test ecx, ecx
jg 0x4cb4c6
jne 0x4cb4b1
cmp eax, 0x2b
je 0x4cb4c6
mov eax, dword [esp + 0x38]
xor ecx, ecx
mov eax, dword [eax]
cmp byte [eax + 0x43], 1
setne cl
mov dword [esp + 0x30], ecx
jmp 0x4cb525
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x30]
mov ecx, dword [ecx]
call fcn.004bff50
jmp 0x4cb50f
mov ecx, dword [esp + 0x30]
test ecx, ecx
js 0x4cb500
jne 0x4cb4e6
cmp eax, 0x2e
je 0x4cb500
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 8]
inc edx
mov esi, dword [esp + 0x10]
mov dword [esp + 0x30], 0
jmp 0x4c7d1d
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x30]
mov ecx, dword [ecx]
call fcn.004bfde0
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4ce33b
mov eax, dword [esp + 0x38]
mov byte [eax + 0x11], 0
cmp dword [esp + 0x30], 0
je 0x4c96f9
mov edx, dword [esi + edi*4 + 8]
mov edi, dword [esp + 8]
dec edx
mov esi, dword [esp + 0x10]
inc edx
jmp 0x4c7d1d
mov ecx, dword [esi + edi*4 + 4]
mov edi, dword [esp + 8]
mov eax, dword [edi + 0x34]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x30], eax
cmp dword [eax], 0
je 0x4c8e11
mov ecx, dword [esp + 0xe4]
mov byte [eax + 0x14], 0
call fcn.004c3180
mov ecx, dword [esp + 0x30]
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x1c], edx
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0xc]
mov byte [eax + 0x11], 0
mov eax, dword [esp + 0x30]
mov byte [eax + 0x15], 1
jmp 0x4c90c6
mov eax, dword [esp + 8]
xor edx, edx
mov dword [esp + 0x30], edx
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x34]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x34], ecx
cmp dword [ecx], edx
je 0x4cb658
mov eax, dword [esp + 0x2c]
mov edx, 0x4000
test word [eax + 0x1c], dx
je 0x4cb5cf
mov ecx, eax
call fcn.004c2f50
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + 0x28]
lea edx, [esp + 0x40]
push 0x97
push edx
push dword [eax + 0x14]
mov edx, dword [eax + 0x18]
call fcn.004c62c0
add esp, 0xc
mov dword [esp + 0x3c], eax
test eax, eax
je 0x4ce192
cmp byte [esi + edi*4], 0x31
jne 0x4cb605
or word [eax + 6], 0x10
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x38]
mov edx, eax
push ecx
mov ecx, dword [esp + 0x38]
push 0
push 0
push 0
mov ecx, dword [ecx]
call fcn.004bf8e0
mov ecx, dword [esp + 0x4c]
add esp, 0x10
mov dword [esp + 0xc], eax
call fcn.004c64a0
mov edx, dword [esp + 0xc]
test edx, edx
jne 0x4c90c2
xor eax, eax
cmp dword [esp + 0x38], eax
sete al
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x34]
mov byte [eax + 0x15], dl
mov eax, dword [esp + 0x34]
mov dword [eax + 0x44], edx
mov edx, dword [esp + 0x30]
cmp byte [esi + edi*4], 0x31
jne 0x4cb665
test edx, edx
jmp 0x4c90b3
test edx, edx
jne case.0x4c7e70.10
jmp 0x4c90b5
mov eax, dword [esi + edi*4 + 0x10]
mov edx, dword [esp + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea eax, [eax + ecx*8]
mov dword [esp + 0x40], eax
mov ecx, dword [esi + edi*4 + 4]
xor esi, esi
mov eax, dword [edx + 0x34]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esp + 0x34], eax
mov dword [eax + 0x40], 0
mov eax, dword [esp + 0x34]
mov dword [eax + 0x44], 0
mov eax, dword [esp + 0x34]
mov edi, dword [eax]
mov dword [esp + 0x38], edi
mov eax, dword [eax + 0x28]
movzx eax, word [eax + 6]
cmp si, ax
mov word [esp + 0x3c], ax
mov esi, dword [esp + 0x40]
mov edx, eax
mov word [esp + 0x30], cx
jae 0x4cb6ee
movzx eax, cx
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x1c], 1
jne 0x4cb798
inc cx
mov word [esp + 0x30], cx
cmp cx, dx
jb 0x4cb6d1
test edi, edi
je case.0x4c7e70.10
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x3c]
inc eax
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0x2c]
mov ecx, esi
mov word [esp + 0x4c], ax
mov eax, 0x20
mov word [esp + 0x4e], ax
call fcn.004c3180
mov dword [esi], eax
mov ecx, 0xbf04
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 4], edx
or ax, 4
mov ecx, edx
mov word [esi + 0x1c], ax
lea edx, [esp + 0x48]
mov eax, dword [esi]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x34]
add eax, 0x40
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x38]
push eax
push 0
push 0
push 0
call fcn.004bf8e0
add esp, 0x10
mov dword [esp + 0xc], eax
test byte [esp + 0x4e], 0x20
jne 0x4cb341
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
cmp ecx, dword [esp + 0x60]
jne 0x4cb78e
cmp eax, dword [esp + 0x64]
je 0x4cb341
mov dword [esi], ecx
mov dword [esi + 4], eax
jmp case.0x4c7e70.10
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + eax*4 + 8]
mov dword [esp + 0x38], 0
jmp 0x4c90b9
mov eax, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x30], eax
mov ecx, dword [eax]
mov dword [esp + 0x34], ecx
test ecx, ecx
je 0x4cb85f
mov eax, dword [esp + 0x2c]
lea edi, [esp + 0x38]
push edi
mov dword [esp + 0x3c], 0
push 0
mov edx, dword [eax]
mov eax, dword [eax + 4]
push eax
mov dword [esp + 0x4c], edx
push edx
xor edx, edx
mov dword [esp + 0x54], eax
call fcn.004bf8e0
mov dword [esp + 0x1c], eax
add esp, 0x10
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x24]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x30]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
cmp dword [esp + 0x38], 0
mov eax, dword [esp + 0x30]
sete cl
mov byte [eax + 0x11], cl
mov eax, dword [esp + 0x30]
mov byte [eax + 0x14], 0
mov eax, dword [esp + 0x30]
mov dword [eax + 0x44], 0
mov eax, dword [esp + 0x30]
mov byte [eax + 0x15], 0
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4cb853
mov eax, dword [esi + edi*4 + 8]
dec eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
mov dword [eax + 0x40], ecx
jmp case.0x4c7e70.10
mov edx, dword [esi + edi*4 + 8]
mov dword [eax + 0x40], 0
jmp 0x4c90b9
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x30]
mov eax, dword [eax + 0x34]
mov dword [edx + 4], eax
mov dword [edx], ecx
mov ecx, dword [esi + edi*4 + 4]
mov edi, dword [esp + 8]
mov eax, dword [edi + 0x34]
mov eax, dword [eax + ecx*4]
mov ecx, 0xbf04
add dword [eax + 0x30], 1
adc dword [eax + 0x34], 0
mov ax, word [edx + 0x1c]
and ax, cx
or ax, 4
mov word [edx + 0x1c], ax
mov edx, dword [esp + 0xc]
jmp 0x4c90c6
xorps xmm0, xmm0
mov dword [esp + 0x3c], 0
movlpd qword [esp + 0x30], xmm0
mov ecx, dword [esi + edi*4 + 4]
mov edi, dword [esp + 8]
mov eax, dword [edi + 0x34]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x38], ecx
cmp dword [ecx], 0
je 0x4cbb0d
mov dword [esp + 0x40], 0
cmp byte [ecx + 0x13], 0
jne 0x4cba29
mov eax, dword [ecx]
mov esi, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
mov eax, esi
or eax, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], edx
jne 0x4cb9cd
mov esi, dword [ecx]
cmp byte [esi + 0x43], 1
jne 0x4cb920
cmp byte [esi + 0x41], al
jne 0x4cb985
mov ecx, esi
call fcn.004bf5e0
mov ecx, eax
mov dword [esp + 0xc], ecx
test ecx, ecx
jne 0x4cb95a
cmp byte [esi + 0x43], al
jne 0x4cb941
mov eax, 1
mov dword [esp + 0x3c], eax
jmp 0x4cb96c
mov ecx, esi
mov dword [esp + 0x3c], 0
call fcn.004bf800
mov ecx, eax
test ecx, ecx
sete al
mov byte [esi + 0x41], al
mov edx, ecx
mov dword [esp + 0xc], edx
test ecx, ecx
jne 0x4ce33f
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4cb985
mov esi, 1
xor edx, edx
mov dword [esp + 0x30], esi
add esi, esi
mov dword [esp + 0x34], edx
adc edx, edx
jmp 0x4cb9fe
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x30]
mov ecx, dword [ecx]
call fcn.004bf060
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov dword [esp + 0xc], eax
cmp esi, 0xffffffff
jne 0x4cb9bf
cmp edx, 0x7fffffff
jne 0x4cb9bf
mov eax, dword [esp + 0x38]
mov byte [eax + 0x13], 1
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
jmp 0x4cb9cd
add esi, 1
mov dword [esp + 0x30], esi
adc edx, 0
mov dword [esp + 0x34], edx
cmp edx, 0x7fffffff
jg 0x4cb9e4
jl 0x4cb9dc
cmp esi, 0xffffffff
jae 0x4cb9e4
add esi, 1
adc edx, 0
jmp 0x4cb9fe
xorps xmm0, xmm0
movlpd qword [esp + 0xf0], xmm0
mov edx, dword [esp + 0xf4]
mov esi, dword [esp + 0xf0]
mov eax, dword [esp + 0x38]
mov edi, dword [eax]
mov eax, dword [edi + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4cba25
nop
mov eax, dword [ecx + 0x14]
cmp eax, dword [edi + 0x14]
jne 0x4cba1e
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x1c], edx
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x4cba10
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x38]
cmp byte [eax + 0x13], 0
je 0x4cbaf2
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x30]
mov edx, dword [eax + 0x34]
xor eax, eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x40], eax
nop
test eax, eax
jne 0x4cba74
mov eax, ecx
xor esi, esi
and eax, 0xffffff
cmp eax, ecx
jne 0x4cba74
cmp esi, edx
jne 0x4cba74
add ecx, 1
mov dword [esp + 0x30], ecx
adc edx, esi
mov dword [esp + 0x34], edx
jmp 0x4cbaa3
lea edx, [esp + 0x30]
mov ecx, 8
call fcn.004b5100
cmp dword [esp + 0x40], 5
mov ecx, dword [esp + 0x30]
jge 0x4cba9f
and ecx, 0xffffff
xor edx, edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
jmp 0x4cbaa3
mov edx, dword [esp + 0x34]
lea eax, [esp + 0x3c]
push eax
push 0
push edx
push ecx
mov ecx, dword [esp + 0x48]
xor edx, edx
mov ecx, dword [ecx]
call fcn.004bf8e0
mov ecx, eax
add esp, 0x10
mov eax, dword [esp + 0x40]
inc eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x40], eax
test ecx, ecx
jne 0x4cbaf2
cmp eax, 0x64
jge 0x4cbae7
cmp dword [esp + 0x3c], ecx
jne 0x4cbaf2
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
jmp 0x4cba50
cmp dword [esp + 0x3c], 0
je 0x4ce32c
mov eax, dword [esp + 0x38]
mov byte [eax + 0x11], 0
mov eax, dword [esp + 0x38]
mov byte [eax + 0x15], 0
mov eax, dword [esp + 0x38]
mov dword [eax + 0x44], 0
mov edx, dword [esp + 0x18]
mov ecx, 0xbf04
mov ax, word [edx + 0x1c]
and ax, cx
or ax, 4
jmp 0x4ca35a
mov eax, dword [esp + 8]
mov edx, dword [eax + 0x58]
mov eax, dword [esi + edi*4 + 8]
mov dword [esp + 0xd8], edx
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x30], esi
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x34]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x40], ecx
cmp byte [edx + edi*4], 0x36
mov edx, dword [esp + 0xd8]
mov eax, dword [eax + edi*4 + 0xc]
mov dword [esp + 0xc], ecx
jne 0x4cbb8e
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov dword [esp + 0x34], ecx
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0xc]
jmp 0x4cbb93
cdq
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x38], eax
test byte [edx + edi*4 + 3], 1
je 0x4cbba9
mov eax, dword [esp + 8]
inc dword [eax + 0x74]
test byte [edx + edi*4 + 3], 2
je 0x4cbbce
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], ecx
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x30]
mov dword [esp + 0xc], ecx
test byte [esi + 0x1c], 1
je 0x4cbbf2
mov dword [esi + 0x14], 0
mov eax, dword [esp + 0x30]
mov dword [eax + 0x18], 0
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x30]
mov dword [esp + 0xc], ecx
test byte [edx + edi*4 + 3], 0x10
je 0x4cbbfe
mov eax, dword [ecx + 0x40]
jmp 0x4cbc00
xor eax, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0xf8], eax
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x4cbc1a
mov edi, dword [esi]
jmp 0x4cbc1c
xor edi, edi
mov dword [esp + 0x44], edi
mov edx, dword [ecx]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4cbc5f
nop dword [eax]
mov eax, dword [ecx + 0x14]
cmp eax, dword [edx + 0x14]
jne 0x4cbc46
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x1c], 0
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x4cbc30
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x30]
jmp 0x4cbc6a
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x28]
mov ecx, dword [ecx]
movzx eax, byte [edx + eax*4 + 3]
xor edx, edx
and eax, 8
push eax
push edi
push dword [esi + 0x18]
push dword [esi + 0x14]
push dword [esp + 0x50]
push dword [esp + 0x50]
call fcn.004c2250
mov esi, dword [esp + 0x2c]
add esp, 0x1c
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0xc]
mov byte [eax + 0x11], 0
mov eax, dword [esp + 0x40]
mov byte [eax + 0x15], 0
mov eax, dword [esp + 0x40]
mov dword [eax + 0x44], 0
test edx, edx
jne 0x4c86d7
cmp dword [esi + 0xb8], edx
je 0x4c86d7
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
cmp dword [edi + esi*4 + 0x10], edx
je 0x4c90c2
mov eax, dword [esp + 0x40]
push dword [esp + 0x3c]
push dword [esp + 0x3c]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x18]
add ecx, ecx
mov eax, dword [eax + 8]
mov edx, dword [eax + ecx*8]
mov eax, 0x12
mov dword [esp + 0x54], edx
mov ecx, dword [edi + esi*4 + 0x10]
mov dword [esp + 0x58], ecx
test byte [edi + esi*4 + 3], 4
mov esi, 0x17
push ecx
cmovne eax, esi
mov esi, dword [esp + 0x1c]
push edx
push eax
mov dword [esp + 0x68], eax
push dword [esi + 0xb4]
mov eax, dword [esi + 0xb8]
call eax
mov edx, dword [esp + 0x34]
add esp, 0x18
mov edi, dword [esp + 8]
inc edx
jmp 0x4c7d1d
mov eax, dword [esp + 8]
xorps xmm0, xmm0
movlpd qword [esp + 0x30], xmm0
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x34]
mov esi, dword [eax + ecx*4]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x38], esi
cmp dword [eax + 0xb8], 0
je 0x4cbd88
mov eax, dword [esp + 0x14]
cmp dword [eax + edi*4 + 0x10], 0
je 0x4cbd88
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
cmp byte [esi + 0x15], 0
je 0x4cbe00
mov ecx, dword [esi]
lea eax, [esp + 0x118]
push eax
push 0
push dword [esi + 0x1c]
xor edx, edx
push dword [esi + 0x18]
call fcn.004bf8e0
mov edx, eax
add esp, 0x10
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4ce33b
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x118]
test ecx, ecx
mov dword [esi + 8], eax
sete al
mov byte [esi + 0x11], al
test ecx, ecx
jns 0x4cbdf3
mov ecx, dword [esi]
lea edx, [esp + 0x118]
call fcn.004bfde0
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4ce33b
mov byte [esi + 0x15], 0
mov dword [esi + 0x44], 0
jmp 0x4cbe4f
mov edi, dword [esi]
test edi, edi
je 0x4cbe4b
cmp byte [edi + 0x43], 2
jb 0x4cbe21
mov ecx, edi
call fcn.004bd9a0
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4ce33b
cmp byte [edi + 0x43], 1
jne 0x4cbe31
cmp dword [edi + 0x50], 0
jne 0x4cbe31
xor eax, eax
jmp 0x4cbe36
mov eax, 1
mov edi, dword [esp + 0x24]
test eax, eax
je 0x4cbe4f
mov dword [esi + 0x44], 0
mov byte [esi + 0x14], 1
jmp 0x4cbe4f
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
mov edx, dword [eax]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4cbe7d
nop
mov eax, dword [ecx + 0x14]
cmp eax, dword [edx + 0x14]
jne 0x4cbe76
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x1c], 0
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x4cbe60
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx]
call fcn.004c2510
mov esi, dword [esp + 0x10]
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], 0
mov eax, dword [esp + 0x38]
mov dword [eax + 0x44], 0
jne 0x4cbedd
mov edx, dword [esi + 0xb8]
test edx, edx
je 0x4cbedd
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 0x10]
test eax, eax
je 0x4cbedd
push dword [esp + 0x34]
push dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 8]
add ecx, ecx
push dword [eax + ecx*8]
push 9
push dword [esi + 0xb4]
call edx
add esp, 0x18
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
test byte [eax + edi*4 + 8], 1
mov edi, dword [esp + 8]
je 0x4c90ca
inc dword [edi + 0x74]
jmp 0x4c90ca
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov eax, dword [edi + 0x74]
add dword [esi + 0x40], eax
mov dword [esi + 0x3c], eax
mov dword [edi + 0x74], 0
jmp 0x4c90ca
mov eax, dword [esi + edi*4 + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea eax, [eax + ecx*8]
mov ecx, dword [esi + edi*4 + 4]
mov edi, dword [esp + 8]
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x34]
mov esi, dword [eax + ecx*4]
mov dword [esp + 0x30], esi
mov eax, dword [esi]
mov dword [esp + 0x34], eax
cmp byte [esi + 0x15], 0
je 0x4cbfc2
mov ecx, dword [esi]
lea eax, [esp + 0x11c]
push eax
push 0
push dword [esi + 0x1c]
xor edx, edx
push dword [esi + 0x18]
call fcn.004bf8e0
mov edx, eax
add esp, 0x10
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4ce33f
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x11c]
test ecx, ecx
mov dword [esi + 8], eax
sete al
mov byte [esi + 0x11], al
test ecx, ecx
jns 0x4cbfb5
mov ecx, dword [esi]
lea edx, [esp + 0x11c]
call fcn.004bfde0
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4ce33f
mov byte [esi + 0x15], 0
mov dword [esi + 0x44], 0
jmp 0x4cc011
mov edi, dword [esi]
test edi, edi
je 0x4cc00d
cmp byte [edi + 0x43], 2
jb 0x4cbfe3
mov ecx, edi
call fcn.004bd9a0
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4ce33b
cmp byte [edi + 0x43], 1
jne 0x4cbff3
cmp dword [edi + 0x50], 0
jne 0x4cbff3
xor eax, eax
jmp 0x4cbff8
mov eax, 1
mov edi, dword [esp + 8]
test eax, eax
je 0x4cc011
mov dword [esi + 0x44], 0
mov byte [esi + 0x14], 1
jmp 0x4cc011
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x17], 0
je 0x4cc04e
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0x40]
call fcn.004bf060
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0x48]
cdq
cmp dword [esp + 0x44], edx
jg 0x4ce3cb
mov edx, dword [esp + 0x40]
jl 0x4cc048
cmp edx, eax
ja 0x4ce3cb
mov dword [esp + 0x38], edx
jmp 0x4cc0ca
mov edx, dword [esp + 0x34]
mov dword [esp + 0xec], edx
cmp word [edx + 0x3e], 0
jne 0x4cc0b6
movsx eax, word [edx + 0x5c]
movzx edi, word [edx + eax*2 + 0xb0]
mov eax, dword [edx + eax*4 + 0x60]
mov dword [esp + 0xd8], eax
mov ecx, dword [eax + 0x40]
movzx esi, word [eax + 0xc]
lea eax, [edx + 0x20]
add esi, ecx
push eax
movzx eax, byte [esi + edi*2 + 1]
movzx edx, byte [esi + edi*2]
mov esi, dword [esp + 0xdc]
shl edx, 8
or edx, eax
movzx eax, word [esi + 0x12]
and edx, eax
add edx, ecx
mov ecx, esi
call fcn.004bdae0
mov edx, dword [esp + 0xf0]
add esp, 4
mov byte [edx + 0x42], 1
mov esi, dword [esp + 0x10]
mov edx, dword [edx + 0x30]
mov dword [esp + 0x38], edx
cmp edx, dword [esi + 0x48]
ja 0x4ce3bd
mov esi, dword [esp + 0x18]
mov ecx, esi
push 0
call fcn.004c2d60
add esp, 4
test eax, eax
jne 0x4ce192
mov eax, dword [esp + 0x38]
mov ecx, 0xbf10
mov edi, dword [esi + 0x14]
mov dword [esi + 0x18], eax
mov ax, word [esi + 0x1c]
and ax, cx
or ax, 0x10
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x17], 0
je 0x4cc12e
mov ecx, dword [esp + 0x34]
xor edx, edx
push 0
push edi
push dword [esp + 0x40]
call fcn.004bf100
mov edx, eax
mov byte [esi + 0x1f], 1
add esp, 0xc
mov dword [esp + 0xc], edx
jmp 0x4c90c2
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov dword [esp + 0xd8], eax
mov al, byte [esi + 0x43]
test al, al
jne 0x4cc15a
mov esi, dword [esp + 0x18]
mov edx, 4
mov dword [esp + 0xc], edx
mov byte [esi + 0x1f], 1
jmp 0x4c90c2
cmp al, 2
jb 0x4cc16f
mov ecx, esi
call fcn.004bd9a0
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4cc18b
push 0
push edi
push dword [esp + 0xe0]
xor edx, edx
mov ecx, esi
call fcn.004bf100
mov edx, eax
add esp, 0xc
mov dword [esp + 0xc], edx
mov esi, dword [esp + 0x18]
mov byte [esi + 0x1f], 1
jmp 0x4c90c2
mov ecx, dword [esi + edi*4 + 4]
mov edi, dword [esp + 8]
mov eax, dword [edi + 0x34]
mov esi, dword [eax + ecx*4]
mov ecx, esi
mov dword [esp + 0x30], ecx
cmp byte [esi + 0x14], 0
jne 0x4c8e11
cmp byte [esi + 0x15], 0
je 0x4cc1cf
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
jmp 0x4cc289
cmp dword [esi + 0x38], 0
je 0x4cc218
mov eax, dword [esi + 0x38]
lea ecx, [esp + 0x38]
push ecx
mov eax, dword [eax]
mov dword [esp + 0x44], eax
mov eax, dword [eax]
mov dword [esp + 0x48], eax
push dword [esi + 0x38]
mov eax, dword [eax + 0x30]
call eax
push dword [edi + 0x68]
mov esi, dword [esp + 0x1c]
push esi
mov dword [esp + 0x1c], eax
call fcn.004b3560
mov ecx, dword [esp + 0x50]
add esp, 0x10
mov eax, dword [ecx + 8]
mov dword [edi + 0x68], eax
mov dword [ecx + 8], 0
jmp 0x4cc28d
mov edi, dword [esi]
test edi, edi
je 0x4cc258
cmp byte [edi + 0x43], 2
jb 0x4cc23d
mov ecx, edi
call fcn.004bd9a0
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4ce33b
mov ecx, dword [esp + 0x30]
cmp byte [edi + 0x43], 1
jne 0x4cc249
cmp dword [edi + 0x50], 0
je 0x4cc258
mov dword [esi + 0x44], 0
mov byte [esi + 0x14], 1
mov ecx, dword [esp + 0x30]
cmp byte [ecx + 0x11], 0
mov dword [esp + 0xc], 0
je 0x4cc276
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
jmp 0x4cc285
mov ecx, dword [ecx]
lea edx, [esp + 0x38]
call fcn.004bf060
mov dword [esp + 0xc], eax
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov dword [edx], eax
mov ax, word [edx + 0x1c]
mov dword [edx + 4], ecx
mov ecx, 0xbf04
and ax, cx
or ax, 4
mov word [edx + 0x1c], ax
mov edx, dword [esp + 0xc]
jmp 0x4c90ca
mov ecx, dword [esi + edi*4 + 4]
mov edi, dword [esp + 8]
mov eax, dword [edi + 0x34]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x30], eax
mov byte [eax + 0x14], 1
mov eax, dword [esp + 0x30]
mov byte [eax + 0x11], 0
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
test ecx, ecx
je 0x4c8e11
call fcn.004bd910
mov edx, dword [esp + 0xc]
jmp 0x4c90c6
mov eax, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x34]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x30], ecx
mov esi, dword [ecx]
mov dword [esp + 0x34], esi
test esi, esi
jne 0x4cc31b
mov dword [esp + 0x38], 1
jmp 0x4cc36e
cmp byte [esi + 0x43], 1
jne 0x4cc331
cmp byte [esi + 0x41], 0
je 0x4cc331
mov dword [esp + 0xc], 0
jmp 0x4cc36e
mov ecx, esi
call fcn.004bf5e0
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4cc36a
cmp byte [esi + 0x43], al
jne 0x4cc34f
mov dword [esp + 0x38], 1
jmp 0x4cc36a
mov ecx, esi
mov dword [esp + 0x38], 0
call fcn.004bf800
test eax, eax
mov dword [esp + 0xc], eax
sete al
mov byte [esi + 0x41], al
mov ecx, dword [esp + 0x30]
mov al, byte [esp + 0x38]
mov byte [ecx + 0x14], al
mov eax, dword [esp + 0x30]
mov byte [eax + 0x15], 0
mov eax, dword [esp + 0x30]
mov byte [eax + 0x11], 0
mov eax, dword [esp + 0x30]
mov dword [eax + 0x44], 0
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 8]
test eax, eax
jle case.0x4c7e70.10
cmp dword [esp + 0x38], 0
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
je 0x4c7fd1
lea edx, [eax - 1]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xc]
jmp 0x4c90ca
mov eax, dword [esp + 8]
inc dword [eax + 0xbc]
jmp 0x4cc3d3
mov eax, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x34]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x30], ecx
mov esi, dword [ecx]
mov dword [esp + 0x34], esi
test esi, esi
je 0x4cc452
mov ecx, esi
call fcn.004bf5e0
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4cc422
cmp byte [esi + 0x43], al
jne 0x4cc40f
mov dword [esp + 0x38], 1
mov dword [esp + 0xc], eax
jmp 0x4cc422
mov ecx, esi
mov dword [esp + 0x38], 0
call fcn.004bf720
mov dword [esp + 0xc], eax
cmp dword [esp + 0x38], 0
mov eax, dword [esp + 0x30]
sete cl
mov byte [eax + 0x12], cl
mov eax, dword [esp + 0x30]
mov byte [eax + 0x15], 0
mov eax, dword [esp + 0x30]
mov dword [eax + 0x44], 0
mov eax, dword [esp + 0x30]
mov byte [eax + 0x11], 0
mov ecx, dword [esp + 0x30]
jmp 0x4cc45a
mov dword [esp + 0x38], 1
mov al, byte [esp + 0x38]
mov esi, dword [esp + 0x10]
mov byte [ecx + 0x14], al
cmp dword [esp + 0x38], 0
je 0x4c86d3
mov eax, dword [esp + 0x14]
mov edx, dword [eax + edi*4 + 8]
mov edi, dword [esp + 8]
dec edx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xc]
jmp 0x4c90ca
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xd8], 0
jne 0x4ce539
mov eax, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x30], eax
test eax, eax
je case.0x4c7e70.10
mov ecx, dword [eax]
mov dword [esp + 0x34], ecx
test ecx, ecx
jne 0x4cc4c8
mov byte [eax + 0x14], 1
jmp case.0x4c7e70.10
mov dword [esp + 0x38], 1
lea edx, [esp + 0x38]
cmp byte [esi + edi*4], 0x42
jne 0x4cc4e1
call fcn.004bfde0
jmp 0x4cc4e6
call fcn.004bff50
mov ecx, dword [esp + 0x30]
mov dword [esp + 0xc], eax
mov al, byte [esp + 0x38]
mov byte [ecx + 0x14], al
mov eax, dword [esp + 0x30]
mov dword [eax + 0x44], 0
cmp dword [esp + 0x38], 0
jne 0x4cc537
mov eax, dword [esi + edi*4 + 8]
dec eax
mov dword [esp + 0x1c], eax
mov al, byte [esi + edi*4 + 3]
mov edi, dword [esp + 8]
test al, al
je 0x4cc53b
mov edx, dword [esp + 0xc]
movzx eax, al
inc dword [edi + eax*4 + 0xb4]
mov eax, dword [esp + 0x30]
mov byte [eax + 0x11], 0
jmp 0x4c90c6
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0xc]
mov byte [eax + 0x11], 0
jmp 0x4c90c6
mov eax, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x30], eax
mov ecx, dword [eax]
mov dword [esp + 0x34], ecx
test ecx, ecx
je case.0x4c7e70.10
mov esi, dword [esp + 0xe4]
mov edx, 0x4000
test word [esi + 0x1c], dx
je 0x4cc59b
mov ecx, esi
call fcn.004c2f50
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c90c2
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
mov edx, dword [esi + 0x18]
mov dword [esp + 0x38], edx
mov esi, dword [esi + 0x14]
mov dword [esp + 0x3c], esi
mov dword [esp + 0xd8], esi
mov esi, dword [esp + 0x14]
test byte [esi + edi*4 + 3], 0x10
mov esi, dword [esp + 0xd8]
je 0x4cc5c7
mov eax, dword [eax + 0x40]
jmp 0x4cc5c9
xor eax, eax
push eax
mov eax, dword [esp + 0x18]
push dword [eax + edi*4 + 0xc]
mov eax, edx
push 0
push 0
cdq
push 0x5443dc
push edx
push eax
mov edx, esi
call fcn.004c2250
mov dword [esp + 0x28], eax
add esp, 0x1c
mov eax, dword [esp + 0x30]
mov dword [eax + 0x44], 0
jmp case.0x4c7e70.10
mov eax, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x30], eax
mov ecx, dword [eax]
mov dword [esp + 0x34], ecx
test ecx, ecx
je case.0x4c7e70.10
mov eax, dword [eax + 0x28]
mov dword [esp + 0x40], eax
mov ax, word [esi + edi*4 + 0xc]
mov word [esp + 0x44], ax
xor eax, eax
mov word [esp + 0x46], ax
mov eax, dword [esi + edi*4 + 8]
mov edi, dword [esp + 8]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea eax, [eax + edx*8]
mov dword [esp + 0x50], eax
lea edx, [esp + 0x40]
lea eax, [esp + 0x38]
push eax
push 0
push 0
push 0
call fcn.004bf8e0
add esp, 0x10
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4cc67d
cmp dword [esp + 0x38], eax
jne 0x4cc67d
mov ecx, dword [esp + 0x34]
call fcn.004c2510
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0xc]
mov dword [eax + 0x44], 0
jmp 0x4c90c6
mov ecx, dword [esi + edi*4 + 4]
mov edi, dword [esp + 8]
mov eax, dword [edi + 0x34]
mov esi, dword [eax + ecx*4]
mov dword [esp + 0x34], esi
mov eax, dword [esi]
mov dword [esp + 0x30], eax
test eax, eax
je 0x4c8e11
cmp byte [esi + 0x15], 0
je 0x4cc729
mov ecx, dword [esi]
lea eax, [esp + 0x120]
push eax
push 0
push dword [esi + 0x1c]
xor edx, edx
push dword [esi + 0x18]
call fcn.004bf8e0
mov edx, eax
add esp, 0x10
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4ce33f
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x120]
test ecx, ecx
mov dword [esi + 8], eax
sete al
mov byte [esi + 0x11], al
test ecx, ecx
jns 0x4cc71c
mov ecx, dword [esi]
lea edx, [esp + 0x120]
call fcn.004bfde0
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4ce33f
mov byte [esi + 0x15], 0
mov dword [esi + 0x44], 0
jmp 0x4cc778
mov edi, dword [esi]
test edi, edi
je 0x4cc774
cmp byte [edi + 0x43], 2
jb 0x4cc74a
mov ecx, edi
call fcn.004bd9a0
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4ce33b
cmp byte [edi + 0x43], 1
jne 0x4cc75a
cmp dword [edi + 0x50], 0
jne 0x4cc75a
xor eax, eax
jmp 0x4cc75f
mov eax, 1
mov edi, dword [esp + 8]
test eax, eax
je 0x4cc778
mov dword [esi + 0x44], 0
mov byte [esi + 0x14], 1
jmp 0x4cc778
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc], 0
cmp byte [eax + 0x14], 0
jne 0x4ce032
mov edx, dword [esp + 0x30]
lea eax, [esp + 0x38]
push eax
call fcn.004c6a60
mov edx, eax
add esp, 4
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4ce33f
mov edx, dword [esp + 0x18]
mov ecx, 0xbf04
mov esi, dword [esp + 0x10]
mov ax, word [edx + 0x1c]
and ax, cx
or ax, 4
mov word [edx + 0x1c], ax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov edx, dword [esp + 0x1c]
inc edx
jmp 0x4c7d1d
mov edx, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [edx + 0x34]
mov esi, dword [eax + ecx*4]
mov dword [esp + 0x30], esi
cmp dword [esi], 0
je case.0x4c7e70.10
mov ecx, dword [esp + 0x14]
mov eax, dword [esi + 0x28]
mov dword [esp + 0x38], eax
mov ax, word [ecx + edi*4 + 0x10]
mov word [esp + 0x3c], ax
mov eax, 0xc
cmp byte [ecx + edi*4 + 3], 0
jne 0x4cc821
mov eax, 4
mov word [esp + 0x3e], ax
xorps xmm0, xmm0
mov eax, dword [ecx + edi*4 + 0xc]
movlpd qword [esp + 0x150], xmm0
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea edx, [esp + 0x150]
lea eax, [eax + ecx*8]
mov dword [esp + 0x48], eax
mov ecx, dword [esi]
call fcn.004bf060
mov edx, dword [esp + 0x150]
mov ecx, edx
mov eax, dword [esp + 0x154]
add ecx, 0xffffffff
adc eax, 0xffffffff
test eax, eax
ja 0x4cc92e
jb 0x4cc87d
cmp ecx, 0x7ffffffe
ja 0x4cc92e
mov ecx, dword [esi]
lea eax, [esp + 0x160]
push eax
xorps xmm0, xmm0
push 1
push edx
xor edx, edx
movaps xmmword [esp + 0x16c], xmm0
movaps xmmword [esp + 0x17c], xmm0
movq qword [esp + 0x18c], xmm0
call fcn.004c3bb0
add esp, 0xc
mov dword [esp + 0xc], eax
test eax, eax
je 0x4cc8be
mov eax, dword [esp + 0x34]
jmp 0x4cc93c
mov edx, dword [esp + 0x174]
lea eax, [esp + 0x38]
mov ecx, dword [esp + 0x178]
push eax
call fcn.004c65b0
add esp, 4
mov dword [esp + 0x34], eax
lea ecx, [esp + 0x160]
call fcn.004c3060
push dword [esp + 0x184]
push dword [esp + 0x174]
call fcn.004b3560
mov eax, dword [esp + 0x3c]
add esp, 8
mov dword [esp + 0x174], 0
mov dword [esp + 0x184], 0
mov dword [esp + 0x180], 0
mov dword [esp + 0xc], 0
jmp 0x4cc93c
xor eax, eax
mov dword [esp + 0xc], 0xb
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x14]
cmp byte [ecx + edi*4], 0x48
jne 0x4cc94a
neg eax
jmp 0x4cc94b
inc eax
mov esi, dword [esp + 0x10]
mov dword [esp + 0x34], eax
test eax, eax
jle 0x4c86d3
mov edx, dword [ecx + edi*4 + 8]
mov edi, dword [esp + 8]
dec edx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xc]
jmp 0x4c90ca
mov eax, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0x34], edx
mov ecx, dword [eax + 0x88]
mov dword [esp + 0x38], ecx
test ecx, ecx
je 0x4cc9c0
nop dword [eax]
cmp dword [ecx + 0x50], 0xbdf20da3
jne 0x4cc9aa
cmp byte [ecx + 0x70], 2
jae 0x4cc9aa
cmp dword [ecx + 0x60], 0
jl 0x4cc9aa
inc edx
mov dword [esp + 0x34], edx
mov eax, dword [ecx + 8]
mov ecx, eax
mov dword [esp + 0x38], ecx
test eax, eax
jne 0x4cc990
cmp edx, 1
jg 0x4ce39c
mov ecx, dword [esi + edi*4 + 0xc]
mov dword [esp + 0x3c], ecx
add ecx, ecx
mov edi, dword [esi + edi*4 + 4]
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 8]
mov eax, dword [eax + ecx*8 + 4]
mov dword [esp + 0xec], eax
mov eax, dword [eax + 4]
mov dword [esp + 0xd8], eax
cmp dword [eax + 8], 0
je 0x4cc9fd
mov dword [esp + 0xc], 0x106
jmp 0x4ccad7
lea ecx, [esp + 0x13c]
mov edx, edi
push 0
push ecx
mov ecx, dword [eax]
call fcn.004bc990
add esp, 8
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4ccad7
mov ecx, dword [esp + 0x13c]
cmp edi, 1
push 0
mov edx, edi
mov esi, dword [ecx + 4]
mov eax, dword [ecx]
mov dword [esi + 0x40], eax
mov eax, dword [esp + 0xdc]
mov dword [esi + 0x3c], eax
setne al
dec al
mov dword [esi + 0x44], ecx
mov ecx, dword [esp + 0xf0]
and al, 0x64
mov dword [esi + 0x48], edi
mov byte [esi + 5], al
call fcn.004c29a0
add esp, 4
mov dword [esp + 0xc], eax
test eax, eax
je 0x4cca82
test esi, esi
je 0x4ccad3
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4ccad3
mov esi, dword [ecx + 0x10]
call fcn.004b85c0
mov ecx, esi
call fcn.004bc930
jmp 0x4ccad3
mov dword [esp + 0x30], 0
cmp edi, 1
jbe 0x4ccaa5
push dword [esi + 0x48]
mov ecx, dword [esi + 0x3c]
mov edx, esi
call fcn.004c0570
add esp, 4
mov dword [esp + 0xc], eax
jmp 0x4ccab5
mov edx, 9
mov ecx, esi
call fcn.004be380
test esi, esi
je 0x4ccacb
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4ccacb
mov esi, dword [ecx + 0x10]
call fcn.004b85c0
mov ecx, esi
call fcn.004bc930
mov eax, dword [esp + 0xc]
mov dword [esp + 0xc], eax
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov edx, 0xbf04
mov edi, dword [esp + 8]
mov ax, word [ecx + 0x1c]
and ax, dx
or ax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [esp + 0x30]
cdq
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xc]
mov dword [ecx], eax
jmp 0x4c90ca
mov dword [esp + 0x30], 0
lea eax, [esp + 0x30]
xor ecx, ecx
cmp dword [esi + edi*4 + 0xc], ecx
mov edi, dword [esi + edi*4 + 4]
cmove eax, ecx
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esi + eax*4 + 8]
mov eax, dword [esp + 0x10]
add ecx, ecx
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*8 + 4]
mov ecx, dword [eax + 4]
mov dword [esp + 0xd8], ecx
mov eax, dword [ecx + 8]
test eax, eax
je 0x4ccb61
nop dword [eax]
cmp byte [eax + 0x54], 0
je 0x4ccb5a
mov byte [eax + 0x43], 0
mov eax, dword [eax + 8]
test eax, eax
jne 0x4ccb50
mov esi, dword [ecx + 8]
test esi, esi
je 0x4ccb96
test edi, edi
je 0x4ccb71
cmp dword [esi + 0x14], edi
jne 0x4ccb88
cmp byte [esi + 0x43], 1
jne 0x4ccb88
mov ecx, esi
call fcn.004bd750
mov ecx, eax
mov dword [esp + 0xc], ecx
test ecx, ecx
jne 0x4ccbad
mov esi, dword [esi + 8]
test esi, esi
jne 0x4ccb68
mov ecx, dword [esp + 0xd8]
push dword [esp + 0xec]
mov edx, edi
push 0
call fcn.004c2800
add esp, 8
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 8]
cmp dword [edx + ecx*4 + 0xc], 0
je 0x4c8e11
mov eax, dword [esp + 0x30]
add dword [edi + 0x74], eax
mov ecx, dword [edx + ecx*4 + 0xc]
test ecx, ecx
jle 0x4c8e11
lea esi, [ecx + ecx*4]
cdq
mov ecx, dword [edi + 0x58]
add dword [ecx + esi*8], eax
adc dword [ecx + esi*8 + 4], edx
mov edx, dword [esp + 0xc]
jmp 0x4c90c6
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x140]
mov dword [esp + 0x30], 0
mov ecx, dword [esi + edi*4 + 4]
mov esi, 2
shl ecx, 4
mov eax, dword [eax + 8]
add eax, ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x38], eax
cmp byte [ecx + edi*4], 0x61
mov ecx, 5
push ecx
cmove esi, ecx
lea ecx, [esp + 0x148]
mov dword [esp + 0x38], esi
mov eax, dword [eax + 4]
push 1
push ecx
mov ecx, dword [eax + 4]
call fcn.004c00e0
add esp, 0xc
mov dword [esp + 0xc], eax
test eax, eax
je 0x4ccc55
mov eax, dword [esp + 0x30]
cdq
jmp 0x4c8d7f
or esi, 8
mov edx, esi
mov esi, dword [esp + 0x140]
mov ecx, esi
call fcn.004be380
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4ccc7e
mov esi, dword [ecx + 0x10]
call fcn.004b85c0
mov ecx, esi
call fcn.004bc930
mov eax, dword [esp + 0x144]
mov dword [esp + 0x30], eax
mov dword [esp + 0xc], 0
cdq
jmp 0x4c8d7f
mov edx, dword [esi + edi*4 + 4]
mov dword [esp + 0x30], edx
cmp dword [esi + edi*4 + 8], 0
jne 0x4cccbf
mov eax, dword [esp + 0x10]
mov ecx, edx
add ecx, ecx
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*8 + 0xc]
test byte [eax + 0x4a], 1
je 0x4ccd55
mov eax, dword [esp + 0x10]
add edx, edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x34], 0x54ec3c
mov eax, dword [esi + edi*4 + 4]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 8]
add eax, 0x68
mov dword [esp + 0x44], eax
push dword [esi + edi*4 + 0x10]
mov esi, dword [esp + 0x14]
push 0x54ec3c
mov eax, dword [esi + 8]
push dword [eax + edx*8]
push 0x54ec4c
push esi
call fcn.004b4dc0
add esp, 0x14
mov dword [esp + 0x38], eax
test eax, eax
je 0x4ce581
push 0
lea eax, [esp + 0x40]
mov byte [esi + 0x7c], 1
mov edx, dword [esp + 0x3c]
mov ecx, esi
push eax
push fcn.004e9850
mov dword [esp + 0x54], 0
call fcn.004e6240
add esp, 0xc
test eax, eax
cmove eax, dword [esp + 0x48]
mov dword [esp + 0xc], eax
push dword [esp + 0x38]
push esi
call fcn.004b3560
add esp, 8
mov byte [esi + 0x7c], 0
jmp 0x4ccd59
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
cmp edx, 7
je 0x4ce19a
jmp 0x4c90ca
mov edx, dword [esi + edi*4 + 0x10]
mov eax, edx
mov ecx, dword [esi + edi*4 + 4]
mov esi, dword [esp + 0x10]
shl ecx, 4
add ecx, dword [esi + 8]
test edx, edx
je 0x4ccd9d
cmp byte [edx], 0
je 0x4ccd96
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x4ccd90
sub eax, edx
and eax, 0x3fffffff
mov ecx, dword [ecx + 0xc]
push 0
push eax
add ecx, 4
call fcn.004b6b70
add esp, 8
mov ecx, eax
call fcn.004d97e0
or dword [esi + 0xc], 0x10
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
jmp 0x4c90ca
mov edx, dword [esi + edi*4 + 0x10]
mov ecx, dword [esi + edi*4 + 4]
mov esi, dword [esp + 0x10]
add ecx, ecx
mov eax, dword [esi + 8]
mov ecx, dword [eax + ecx*8 + 0xc]
mov eax, edx
add ecx, 0x14
test edx, edx
je 0x4ccdfd
cmp byte [edx], 0
je 0x4ccdf6
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x4ccdf0
sub eax, edx
and eax, 0x3fffffff
push 0
push eax
call fcn.004b6b70
mov edi, eax
add esp, 8
test edi, edi
je 0x4cce54
mov edx, dword [edi + 0x10]
mov ecx, dword [edx + 0x14]
cmp ecx, edi
jne 0x4cce20
mov eax, dword [edi + 0x20]
mov dword [edx + 0x14], eax
jmp 0x4cce38
test ecx, ecx
je 0x4cce38
lea edx, [ecx + 0x20]
mov ecx, dword [edx]
cmp ecx, edi
je 0x4cce33
test ecx, ecx
jne 0x4cce24
jmp 0x4cce38
mov eax, dword [edi + 0x20]
mov dword [edx], eax
mov eax, dword [edi + 0x10]
push dword [edi + 0x1c]
mov esi, dword [eax]
push esi
call fcn.004b3560
push edi
push esi
call fcn.004b3560
mov esi, dword [esp + 0x20]
add esp, 0x10
or dword [esi + 0xc], 0x10
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
jmp 0x4c90ca
mov eax, dword [esp + 8]
mov edx, dword [eax + 0x58]
mov eax, dword [esi + edi*4 + 4]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov dword [esp + 0x30], ecx
mov eax, dword [esi + edi*4 + 8]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x34], eax
test byte [ecx + 0x1c], 0x20
jne 0x4ccea5
call fcn.004c3500
mov ecx, dword [esp + 0x30]
test byte [ecx + 0x1c], 0x20
je 0x4ce192
mov eax, dword [esp + 0x34]
push dword [eax + 4]
mov ecx, dword [ecx]
push dword [eax]
call fcn.004b9560
add esp, 8
jmp case.0x4c7e70.10
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xd8], 0
jne 0x4ce539
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x58]
mov eax, dword [esi + edi*4 + 4]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov dword [esp + 0x30], edx
test byte [edx + 0x1c], 0x20
mov eax, dword [esi + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x18], eax
je 0x4ccf39
mov esi, dword [edx]
mov ecx, esi
call fcn.004b96f0
mov edx, dword [esi + 8]
test edx, edx
je 0x4ccf31
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
mov eax, dword [esi + 8]
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
test eax, eax
jne 0x4ccf24
mov ecx, esi
call fcn.004b9490
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
jmp 0x4c94f2
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x14]
mov ecx, edx
call fcn.004c33a0
jmp 0x4c90b5
mov edi, dword [esi + edi*4 + 0x10]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x30], edi
test byte [esi + 0x1c], 0x20
jne 0x4ccf6c
mov ecx, esi
call fcn.004c3500
test byte [esi + 0x1c], 0x20
je 0x4ce192
mov edi, dword [esp + 0x30]
test edi, edi
je 0x4cd10f
js 0x4ccf7d
mov eax, edi
and eax, 0xf
jmp 0x4ccf82
mov eax, 0xff
mov edx, dword [esp + 0x2c]
mov esi, dword [esi]
mov dword [esp + 0xf8], eax
mov dword [esp + 0xf0], esi
mov ecx, dword [edx]
mov dword [esp + 0xec], ecx
mov ecx, dword [edx + 4]
mov dword [esp + 0xd8], ecx
cmp al, byte [esi + 0x1b]
je 0x4cd0bd
cmp dword [esi + 8], 0
je 0x4cd0b6
mov ecx, esi
call fcn.004b96f0
mov edi, dword [esi + 8]
mov edx, 1
mov dword [esp + 0xfc], edi
mov dword [esp + 0x28], edx
mov eax, dword [edi + 8]
mov dword [esp + 0xfc], eax
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
mov eax, dword [esp + 0xfc]
test eax, eax
je 0x4cd09e
nop dword [eax]
mov ecx, edi
mov edi, eax
mov eax, dword [edi + 8]
mov dword [esp + 0xfc], eax
mov dword [edi + 0xc], ecx
mov ecx, dword [esp + 0xfc]
test ecx, ecx
je 0x4cd080
cmp edx, 1
jne 0x4cd03b
mov eax, dword [ecx + 8]
mov dword [esp + 0xfc], eax
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
jmp 0x4cd080
lea edx, [edx - 1]
lea ecx, [esp + 0xfc]
call fcn.004b9690
mov esi, dword [esp + 0xfc]
mov ecx, eax
mov edx, dword [esp + 0x28]
test esi, esi
je 0x4cd080
mov eax, dword [esi + 8]
lea edx, [edx - 1]
mov dword [esi + 0xc], ecx
lea ecx, [esp + 0xfc]
mov dword [esp + 0xfc], eax
call fcn.004b9690
mov edx, dword [esp + 0x28]
mov ecx, esi
mov dword [esi + 8], eax
mov dword [edi + 8], ecx
inc edx
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x28], edx
test eax, eax
jne 0x4cd000
mov esi, dword [esp + 0xf0]
mov eax, dword [esp + 0xf8]
mov dword [esi + 0x14], edi
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov byte [esi + 0x1b], al
mov edi, dword [esp + 0x30]
mov eax, dword [esi + 0x14]
test eax, eax
je 0x4cd101
mov ecx, dword [eax + 4]
mov edx, dword [eax]
cmp ecx, dword [esp + 0xd8]
jg 0x4cd0e4
jl 0x4cd0df
mov esi, dword [esp + 0xec]
cmp edx, esi
jae 0x4cd0eb
mov eax, dword [eax + 8]
jmp 0x4cd0fd
mov esi, dword [esp + 0xec]
cmp ecx, dword [esp + 0xd8]
jl 0x4cd12d
jg 0x4cd0fa
cmp edx, esi
jbe 0x4cd12d
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4cd0c4
mov esi, dword [esp + 0x20]
test edi, edi
mov dword [esp + 0x34], 0
js case.0x4c7e70.10
mov eax, dword [esp + 0x2c]
mov ecx, dword [esi]
push dword [eax + 4]
push dword [eax]
call fcn.004b9560
add esp, 8
jmp case.0x4c7e70.10
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x34], 1
mov edx, dword [ecx + eax*4 + 8]
jmp 0x4c90b9
mov ecx, dword [esp + 0x20]
cmp dword [ecx + 4], 0
jl case.0x4c7e70.10
jg 0x4c90b5
cmp dword [ecx], 0
jbe case.0x4c7e70.10
jmp 0x4c90b5
mov ecx, dword [esp + 0x20]
cmp dword [ecx + 4], 0
jg case.0x4c7e70.10
jl 0x4c90b5
cmp dword [ecx], 0
jae case.0x4c7e70.10
jmp 0x4c90b5
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne case.0x4c7e70.10
jmp 0x4c90b5
mov dl, byte [esi + edi*4 + 3]
movzx eax, dl
mov dword [esp + 0x30], eax
mov eax, dword [esi + edi*4 + 8]
mov esi, dword [esp + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
mov esi, dword [esi + 0x24]
mov dword [esp + 0x80], esi
lea ecx, [eax + ecx*8]
xor eax, eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x34], eax
test dl, dl
je 0x4cd229
mov dword [esi + eax*4], ecx
mov ecx, dword [esp + 0x3c]
movzx eax, word [ecx + 0x1c]
test al, 1
je 0x4cd1e7
mov byte [ecx + 0x1e], 5
jmp 0x4cd206
test al, 4
je 0x4cd1f1
mov byte [ecx + 0x1e], 1
jmp 0x4cd206
test al, 8
je 0x4cd1fb
mov byte [ecx + 0x1e], 2
jmp 0x4cd206
and al, 2
neg al
sbb al, al
add al, 4
mov byte [ecx + 0x1e], al
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
inc eax
add ecx, 0x28
mov dword [esp + 0x34], eax
mov dword [esp + 0x3c], ecx
cmp eax, dword [esp + 0x30]
jge 0x4cd229
mov esi, dword [esp + 0x80]
jmp 0x4cd1d2
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov eax, dword [edx + edi*4 + 0x10]
mov dword [esp + 0x40], eax
mov eax, dword [edx + edi*4 + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea eax, [eax + ecx*8]
mov dword [esp + 0x38], eax
mov dword [esp + 0x70], eax
inc dword [eax + 0x18]
mov eax, 1
mov ecx, dword [esp + 0x40]
mov word [esp + 0x64], ax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x58], esi
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
test byte [ecx + 3], 8
je 0x4cd29d
mov eax, dword [edx + edi*4 - 4]
mov dword [esp + 0x78], eax
push dword [esp + 0x80]
lea eax, [esp + 0x44]
push dword [esp + 0x34]
push eax
mov eax, dword [ecx + 0x10]
call eax
add esp, 0xc
cmp dword [esp + 0x74], 0
je 0x4cd2eb
mov dl, 1
lea ecx, [esp + 0x48]
call fcn.004c3d20
mov edi, dword [esp + 8]
push eax
push 0x54e6e8
push esi
lea eax, [edi + 0x68]
push eax
call fcn.004b39d0
mov eax, dword [esp + 0x84]
add esp, 0x10
mov dword [esp + 0xc], eax
jmp 0x4cd2ef
mov edi, dword [esp + 8]
lea ecx, [esp + 0x48]
call fcn.004c3060
push dword [esp + 0x6c]
push dword [esp + 0x5c]
call fcn.004b3560
mov edx, dword [esp + 0x14]
add esp, 8
mov dword [esp + 0x5c], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
jmp 0x4c90ca
mov eax, dword [esi + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea esi, [eax + ecx*8]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], esi
xor ecx, ecx
mov dword [esp + 0xc], ecx
mov edi, dword [eax + edi*4 + 0x10]
test edi, edi
je 0x4cd3f2
mov eax, dword [edi + 0x14]
mov dword [esp + 0xf0], eax
test eax, eax
je 0x4cd3f2
push 0x40
push ecx
lea eax, [esp + 0x198]
push eax
call fcn.00506f10
mov eax, 1
mov dword [esp + 0x1cc], esi
mov word [esp + 0x1c0], ax
add esp, 0xc
mov eax, dword [esi + 0x10]
mov dword [esp + 0x1a8], eax
lea eax, [esp + 0x190]
mov dword [esp + 0x190], edi
push eax
call dword [esp + 0xf4]
add esp, 4
push dword [esi + 0x24]
push dword [esi + 0x10]
call fcn.004b3560
movups xmm0, xmmword [esp + 0x1a0]
mov ecx, dword [esp + 0x1cc]
add esp, 8
mov dword [esp + 0xc], ecx
movups xmmword [esi], xmm0
movups xmm0, xmmword [esp + 0x1a8]
movups xmmword [esi + 0x10], xmm0
movq xmm0, qword [esp + 0x1b8]
movq qword [esi + 0x20], xmm0
mov esi, dword [esp + 0x30]
test ecx, ecx
je 0x4cd41f
mov dl, 1
mov ecx, esi
call fcn.004c3d20
mov edi, dword [esp + 8]
push eax
push 0x54e6e8
push dword [esp + 0x18]
lea eax, [edi + 0x68]
push eax
call fcn.004b39d0
mov esi, dword [esp + 0x40]
add esp, 0x10
jmp 0x4cd423
mov edi, dword [esp + 8]
test byte [esi + 0x1c], 2
je 0x4cd442
mov al, byte [esp + 0xe8]
cmp byte [esi + 0x1f], al
je 0x4cd442
mov dl, al
mov ecx, esi
call fcn.004b52c0
mov esi, dword [esp + 0x30]
movzx eax, word [esi + 0x1c]
test al, 0x12
je 0x4c8e11
mov ecx, dword [esi + 0x18]
test eax, 0x4000
je 0x4cd45a
add ecx, dword [esi]
mov eax, dword [esi + 0x10]
mov esi, dword [esp + 0x10]
cmp ecx, dword [eax + 0x48]
jg 0x4ce3cb
mov edx, dword [esp + 0xc]
jmp 0x4c90ca
cmp dword [esi + edi*4 + 4], 0
mov esi, dword [esp + 0x10]
jne 0x4cd4a8
mov eax, dword [esi + 0x88]
test eax, eax
je 0x4c86d3
nop dword [eax]
mov byte [eax + 0x6e], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x4cd490
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
jmp 0x4c90ca
mov edi, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov byte [edi + 0x6e], 1
jmp 0x4c90ca
mov eax, dword [esp + 0x10]
mov esi, dword [esi + edi*4 + 0x10]
mov dword [esp + 0x30], esi
mov dword [esp + 0xc], 0
mov edx, dword [eax + 0x11c]
test edx, edx
jle 0x4cd4eb
cmp dword [eax + 0x118], 0
jne 0x4cd4eb
mov edx, 6
mov dword [esp + 0xc], edx
jmp 0x4cd55a
test esi, esi
jne 0x4cd4f7
xor edx, edx
mov dword [esp + 0xc], edx
jmp 0x4cd55a
mov edi, dword [esi + 8]
mov eax, dword [edi]
mov eax, dword [eax + 0x38]
mov dword [esp + 0xf0], eax
test eax, eax
je 0x4cd556
xor ecx, ecx
test edx, edx
jle 0x4cd533
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x118]
nop word [eax + eax]
cmp dword [eax], esi
je 0x4cd4ef
inc ecx
add eax, 4
cmp ecx, edx
jl 0x4cd520
mov eax, dword [esp + 0xf0]
push edi
call eax
mov ecx, eax
add esp, 4
mov dword [esp + 0xc], ecx
test ecx, ecx
jne 0x4cd556
mov ecx, dword [esp + 0x10]
mov edx, esi
call fcn.004f7230
mov edx, eax
mov dword [esp + 0xc], edx
jmp 0x4cd55a
mov edx, dword [esp + 0xc]
cmp dword [esp + 0x30], 0
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
je 0x4c90ca
push dword [edi + 0x68]
push esi
call fcn.004b3560
mov ecx, dword [esp + 0x38]
add esp, 8
mov edx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
mov eax, dword [eax + 8]
mov dword [edi + 0x68], eax
mov eax, dword [ecx + 8]
mov dword [eax + 8], 0
jmp 0x4c90ca
mov eax, dword [esp + 8]
mov edx, dword [esi + edi*4 + 4]
add eax, 0x68
push eax
push dword [esi + edi*4 + 0x10]
mov esi, dword [esp + 0x18]
mov ecx, esi
call fcn.004f72c0
mov edi, dword [esp + 0x10]
mov edx, eax
add esp, 8
mov dword [esp + 0xc], edx
jmp 0x4c90ca
mov esi, dword [esp + 8]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc], 0
mov byte [esi + 0x70], 2
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 8]
add ecx, ecx
mov edx, dword [edx + edi*4 + 0x10]
push dword [eax + ecx*8]
mov ecx, dword [esp + 0x14]
call fcn.004d8f90
add esp, 4
mov dword [esp + 0xf0], eax
lea edi, [esi + 0x70]
test eax, eax
je 0x4cd698
cmp dword [eax + 0x30], 0
lea edi, [esi + 0x70]
je 0x4cd68c
mov ecx, dword [esp + 0x10]
mov edx, eax
call fcn.004f63a0
mov esi, eax
mov ecx, dword [esi + 4]
push dword [esi + 8]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x14]
call ecx
mov dword [esp + 0x10], eax
add esp, 4
mov eax, dword [esp + 8]
mov edx, dword [esp + 0xc]
add eax, 0x70
mov edi, eax
test edx, edx
jne 0x4cd69a
mov ecx, dword [esp + 0xf0]
mov dword [esi + 8], edx
mov dword [ecx + 0x30], edx
add dword [esi + 0xc], 0xffffffff
mov ecx, dword [esi]
mov dword [esp + 0xf0], ecx
jne 0x4cd69a
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x4cd67c
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 0x10]
call eax
mov edi, dword [esp + 0xc]
add esp, 4
add edi, 0x70
push esi
push dword [esp + 0xf4]
call fcn.004b3560
add esp, 8
mov edx, dword [esp + 0xc]
mov byte [edi], 0
jmp 0x4c90c2
xor edx, edx
mov byte [edi], 0
jmp 0x4c90c2
mov dword [esp + 0x30], 0
lea edx, [esp + 0x34]
mov dword [esp + 0x34], 0
mov eax, dword [esi + edi*4 + 0x10]
push edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x3c], ecx
push ecx
mov eax, dword [ecx]
mov dword [esp + 0x44], eax
mov eax, dword [eax + 0x18]
call eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
push dword [eax + 0x68]
push dword [esp + 0x1c]
call fcn.004b3560
mov ecx, dword [esp + 0x48]
add esp, 0x10
mov edx, dword [esp + 8]
mov eax, dword [ecx + 8]
mov dword [edx + 0x68], eax
mov edx, dword [esp + 0xc]
mov dword [ecx + 8], 0
test edx, edx
jne 0x4c90c2
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov dword [eax], ecx
mov edx, dword [esi + edi*4 + 4]
xor esi, esi
mov edi, dword [esp + 8]
mov dword [esp + 0xec], edx
mov eax, dword [edi + 0x54]
sub eax, edx
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea eax, [eax + ecx*8]
lea ecx, [edi + 0x34]
mov dword [esp + 0xd8], eax
mov eax, dword [ecx]
mov dword [esp + 0x24], ecx
mov edi, dword [eax + edx*4]
test edi, edi
je 0x4cd7b3
mov eax, dword [edi + 0x20]
test eax, eax
je 0x4cd795
mov ecx, eax
call fcn.004be790
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], eax
mov edx, dword [esp + 8]
mov ecx, dword [edi + 0x38]
test ecx, ecx
je 0x4cd77f
mov eax, dword [edi + 0x3c]
mov byte [edx + 0x70], 1
push ecx
mov eax, dword [eax + 0x1c]
call eax
mov eax, dword [esp + 0xc]
add esp, 4
mov byte [eax + 0x70], 0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xec]
mov edi, dword [esp + 0x28]
mov eax, dword [eax]
mov dword [eax + ecx*4], esi
jmp 0x4cd7b5
mov eax, dword [edi]
mov dword [esp + 0x28], ecx
test eax, eax
je 0x4cd75c
mov ecx, eax
call fcn.004befd0
mov edx, dword [esp + 8]
lea eax, [edx + 0x34]
mov dword [esp + 0x28], eax
jmp 0x4cd760
mov edi, ecx
mov ecx, dword [esp + 0xd8]
mov edx, 0x58
push 0
call fcn.004c2d60
add esp, 4
test eax, eax
jne 0x4cd802
mov edx, dword [esp + 0xd8]
mov eax, dword [edi]
mov ecx, dword [esp + 0xec]
push 0x58
mov esi, dword [edx + 0x14]
push 0
mov dword [eax + ecx*4], esi
push dword [edx + 0x14]
call fcn.00506f10
add esp, 0xc
mov dword [esi + 4], 0xffffffff
mov dword [esi + 0x2c], 0
mov dword [esp + 0x30], esi
test esi, esi
je 0x4cd832
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 8]
inc edx
mov dword [esi + 0x38], eax
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x10]
mov eax, dword [eax]
mov ecx, dword [eax]
mov eax, dword [esp + 0x30]
mov dword [eax + 0x3c], ecx
jmp 0x4c7d1d
mov esi, dword [esp + 0x10]
mov byte [esi + 0x1e], 1
mov eax, dword [esp + 0x3c]
push dword [esp + 0x34]
mov eax, dword [eax + 0x1c]
call eax
mov edx, dword [esp + 0x20]
add esp, 4
mov edi, dword [esp + 8]
inc edx
jmp 0x4c7d1d
mov eax, dword [esi + edi*4 + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea edx, [eax + ecx*8]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x3c], edx
lea esi, [edx + 0x28]
mov dword [esp + 0x40], esi
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x4c], eax
mov edi, dword [eax + 0x38]
mov dword [esp + 0x44], edi
mov eax, dword [edi]
mov dword [esp + 0x48], eax
mov eax, dword [eax]
mov dword [esp + 0x38], eax
mov dword [esp + 0xd8], eax
mov eax, dword [esi]
mov dword [esp + 0x30], eax
mov ecx, dword [edx]
mov dword [esp + 0xf0], ecx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 8]
mov dword [esp + 0x50], 0
mov edx, dword [ecx + 0x24]
xor ecx, ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x54], ecx
test eax, eax
jle 0x4cd948
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edx + ecx*4], eax
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov ecx, dword [ecx + eax*4]
movzx eax, word [ecx + 0x1c]
test al, 1
je 0x4cd8f9
mov byte [ecx + 0x1e], 5
jmp 0x4cd918
test al, 4
je 0x4cd903
mov byte [ecx + 0x1e], 1
jmp 0x4cd918
test al, 8
je 0x4cd90d
mov byte [ecx + 0x1e], 2
jmp 0x4cd918
and al, 2
neg al
sbb al, al
add al, 4
mov byte [ecx + 0x1e], al
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x30]
inc ecx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x54], ecx
cmp ecx, eax
jge 0x4cd933
mov esi, dword [esp + 0x40]
jmp 0x4cd8d4
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x34]
mov dword [esp + 0xd8], ecx
jmp 0x4cd94f
mov esi, dword [esp + 0xf0]
mov ecx, dword [esp + 8]
push edx
mov edx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x2c]
mov byte [ecx + 0x70], 1
mov ecx, dword [esp + 0xe0]
push dword [edx + eax*4 + 0x10]
mov eax, dword [ecx + 0x20]
push esi
push edi
call eax
mov edi, dword [esp + 0x1c]
add esp, 0x14
mov esi, dword [esp + 0x10]
mov dword [esp + 0xc], eax
push dword [edi + 0x68]
mov byte [edi + 0x70], 0
push esi
call fcn.004b3560
mov ecx, dword [esp + 0x50]
add esp, 8
cmp dword [esp + 0xc], 0
mov eax, dword [ecx + 8]
mov dword [edi + 0x68], eax
mov dword [ecx + 8], 0
jne 0x4cd9c0
mov eax, dword [esp + 0x38]
push dword [esp + 0x44]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
mov dword [esp + 0x50], eax
jmp 0x4cd9c4
mov eax, dword [esp + 0x50]
test eax, eax
je 0x4cd9d9
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + eax*4 + 8]
dec eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0xc]
mov byte [eax + 0x14], 0
jmp 0x4c90ca
mov eax, dword [esp + 8]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x34]
mov edx, dword [eax + ecx*4]
mov eax, dword [esi + edi*4 + 0xc]
mov edi, dword [esp + 8]
mov dword [esp + 0xf0], edx
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea ecx, [eax + ecx*8]
mov dword [esp + 0x38], ecx
cmp byte [edx + 0x14], 0
je 0x4cda28
call fcn.004c33a0
mov edx, dword [esp + 0xc]
jmp 0x4c90c6
mov eax, dword [edx + 0x38]
push 0x40
push 0
mov eax, dword [eax]
mov dword [esp + 0x38], eax
mov eax, dword [eax]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x48]
push eax
call fcn.00506f10
mov edi, dword [esp + 0x44]
lea ecx, [esp + 0x54]
add esp, 0xc
call fcn.004c3060
mov ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x6c]
test ecx, ecx
je 0x4cda8f
test esi, esi
je 0x4cdafe
cmp esi, dword [ecx + 0xf0]
jb 0x4cda8f
cmp esi, dword [ecx + 0xf4]
jae 0x4cda8f
mov eax, dword [ecx + 0xec]
mov dword [esi], eax
dec dword [ecx + 0xe4]
mov dword [ecx + 0xec], esi
jmp 0x4cdafe
test esi, esi
je 0x4cdafe
cmp dword [0x562cd0], 0
je 0x4cdaf4
mov eax, dword [0x5654a8]
test eax, eax
je 0x4cdaaf
push eax
call dword [0x562d18]
add esp, 4
push esi
call dword [0x562cf4]
mov ecx, dword [0x565330]
neg eax
add ecx, eax
add esp, 4
mov eax, dword [0x565354]
cmp ecx, eax
mov dword [0x565330], ecx
cmovg eax, ecx
push esi
mov dword [0x565354], eax
call dword [0x562cec]
mov eax, dword [0x5654a8]
add esp, 4
test eax, eax
je 0x4cdafe
push eax
call dword [0x562d20]
jmp 0x4cdafb
push esi
call dword [0x562cec]
add esp, 4
mov ecx, dword [esp + 0x14]
mov eax, 1
mov dword [esp + 0x5c], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
movups xmm0, xmmword [edi]
movups xmmword [esp + 0x48], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esp + 0x58], xmm0
movq xmm0, qword [edi + 0x20]
movq qword [esp + 0x68], xmm0
mov word [edi + 0x1c], ax
mov dword [edi + 0x20], 0
mov dword [edi + 0x24], 0
mov eax, dword [esp + 0x64]
and eax, 0xbf01
or eax, 1
mov word [esp + 0x64], ax
mov eax, dword [esp + 0x24]
push dword [ecx + eax*4 + 8]
lea eax, [esp + 0x44]
push eax
mov eax, dword [esp + 0xf8]
push dword [eax + 0x38]
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x2c]
call eax
mov edi, dword [esp + 0x14]
add esp, 0xc
mov dword [esp + 0xc], eax
push dword [edi + 0x68]
push dword [esp + 0x14]
call fcn.004b3560
mov ecx, dword [esp + 0x38]
add esp, 8
mov eax, dword [ecx + 8]
mov dword [edi + 0x68], eax
mov dword [ecx + 8], 0
mov eax, dword [esp + 0x74]
test eax, eax
mov ecx, dword [esp + 0xc]
cmovne ecx, eax
test byte [esp + 0x64], 2
mov dword [esp + 0xc], ecx
je 0x4cdbd9
mov al, byte [esp + 0xe8]
cmp byte [esp + 0x67], al
je 0x4cdbd9
mov dl, al
lea ecx, [esp + 0x48]
call fcn.004b52c0
mov esi, dword [esp + 0x38]
mov ecx, esi
call fcn.004c3060
push dword [esi + 0x24]
push dword [esi + 0x10]
call fcn.004b3560
mov dword [esi + 0x14], 0
mov eax, 1
mov dword [esi + 0x24], 0
add esp, 8
mov dword [esi + 0x20], 0
movups xmm0, xmmword [esp + 0x48]
movups xmmword [esi], xmm0
movups xmm0, xmmword [esp + 0x58]
movups xmmword [esi + 0x10], xmm0
movq xmm0, qword [esp + 0x68]
movq qword [esi + 0x20], xmm0
mov word [esp + 0x64], ax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
movzx edx, word [eax + 0x1c]
test dl, 0x12
je 0x4c8e11
mov ecx, dword [eax + 0x18]
test edx, 0x4000
je 0x4cdc5b
add ecx, dword [eax]
mov eax, dword [eax + 0x10]
mov esi, dword [esp + 0x10]
cmp ecx, dword [eax + 0x48]
jg 0x4ce3cb
mov edx, dword [esp + 0xc]
jmp 0x4c90ca
mov edx, dword [esp + 8]
mov dword [esp + 0x38], 0
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [edx + 0x34]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x3c], ecx
cmp byte [ecx + 0x14], 0
jne case.0x4c7e70.10
mov eax, dword [ecx + 0x38]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
mov eax, dword [eax]
mov dword [esp + 0x34], eax
mov byte [edx + 0x70], 1
push dword [ecx + 0x38]
mov eax, dword [eax + 0x24]
call eax
mov dword [esp + 0x10], eax
add esp, 4
mov eax, dword [esp + 8]
push dword [eax + 0x68]
mov byte [eax + 0x70], 0
push dword [esp + 0x14]
call fcn.004b3560
mov ecx, dword [esp + 0x38]
add esp, 8
cmp dword [esp + 0xc], 0
mov edx, dword [esp + 8]
mov eax, dword [ecx + 8]
mov dword [edx + 0x68], eax
mov dword [ecx + 8], 0
jne 0x4cdd06
mov eax, dword [esp + 0x3c]
push dword [eax + 0x38]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
mov dword [esp + 0x38], eax
jmp 0x4cdd0a
mov eax, dword [esp + 0x38]
test eax, eax
jne case.0x4c7e70.10
jmp 0x4c90b5
mov eax, dword [esi + edi*4 + 0x10]
mov edx, dword [eax + 8]
mov dword [esp + 0x30], edx
mov eax, dword [esi + edi*4 + 4]
mov edi, dword [esp + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea eax, [eax + ecx*8]
mov dword [esp + 0x34], eax
mov ecx, dword [edx]
push dword [eax + 0x14]
push edx
mov eax, dword [ecx + 0x4c]
call eax
mov esi, dword [edi + 0x68]
add esp, 8
mov dword [esp + 0xc], eax
test esi, esi
je 0x4cddeb
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0xf0]
jb 0x4cdd80
cmp esi, dword [ecx + 0xf4]
jae 0x4cdd80
mov eax, dword [ecx + 0xec]
mov dword [esi], eax
mov dword [ecx + 0xec], esi
mov esi, ecx
dec dword [esi + 0xe4]
jmp 0x4cddef
cmp dword [0x562cd0], 0
je 0x4cdde1
mov eax, dword [0x5654a8]
test eax, eax
je 0x4cdd9c
push eax
call dword [0x562d18]
add esp, 4
push esi
call dword [0x562cf4]
mov ecx, dword [0x565330]
neg eax
add ecx, eax
add esp, 4
mov eax, dword [0x565354]
cmp ecx, eax
mov dword [0x565330], ecx
cmovg eax, ecx
push esi
mov dword [0x565354], eax
call dword [0x562cec]
mov eax, dword [0x5654a8]
add esp, 4
test eax, eax
je 0x4cddeb
push eax
call dword [0x562d20]
jmp 0x4cdde8
push esi
call dword [0x562cec]
add esp, 4
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
mov dword [edi + 0x68], eax
mov dword [ecx + 8], 0
jmp 0x4c90ca
mov eax, dword [esi + edi*4 + 0x10]
mov ecx, dword [esp + 0x24]
mov esi, dword [eax + 8]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], esi
mov edi, dword [esi]
mov dword [esp + 0x34], edi
mov edx, dword [eax + ecx*4 + 8]
mov dword [esp + 0x38], edx
cmp dword [edi + 0x34], 0
je case.0x4c7e70.10
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x24]
mov dword [esp + 0xf0], eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + ecx*4 + 0xc]
mov dword [esp + 0x3c], 0
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x58]
lea ecx, [eax + ecx*8]
mov dword [esp + 0x4c], ecx
test edx, edx
jle 0x4cded6
nop dword [eax + eax]
movzx eax, word [ecx + 0x1c]
test al, 1
je 0x4cde7e
mov byte [ecx + 0x1e], 5
jmp 0x4cde9d
test al, 4
je 0x4cde88
mov byte [ecx + 0x1e], 1
jmp 0x4cde9d
test al, 8
je 0x4cde92
mov byte [ecx + 0x1e], 2
jmp 0x4cde9d
and al, 2
neg al
sbb al, al
add al, 4
mov byte [ecx + 0x1e], al
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
mov dword [eax + ecx*4], edx
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x4c]
inc eax
mov edx, dword [esp + 0x38]
add ecx, 0x28
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x3c], eax
cmp eax, edx
jl 0x4cde70
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
jmp 0x4cdedd
mov eax, dword [esp + 0xf0]
lea ecx, [esp + 0x40]
push ecx
push eax
mov eax, dword [edi + 0x34]
push edx
push esi
call eax
mov edi, dword [esp + 0x18]
add esp, 0x10
mov dword [esp + 0xc], eax
mov esi, dword [edi + 0x68]
test esi, esi
je 0x4cdf97
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0xf0]
jb 0x4cdf2c
cmp esi, dword [ecx + 0xf4]
jae 0x4cdf2c
mov eax, dword [ecx + 0xec]
mov dword [esi], eax
mov dword [ecx + 0xec], esi
mov esi, ecx
dec dword [esi + 0xe4]
jmp 0x4cdf9b
cmp dword [0x562cd0], 0
je 0x4cdf8d
mov eax, dword [0x5654a8]
test eax, eax
je 0x4cdf48
push eax
call dword [0x562d18]
add esp, 4
push esi
call dword [0x562cf4]
mov ecx, dword [0x565330]
neg eax
add ecx, eax
add esp, 4
mov eax, dword [0x565354]
cmp ecx, eax
mov dword [0x565330], ecx
cmovg eax, ecx
push esi
mov dword [0x565354], eax
call dword [0x562cec]
mov eax, dword [0x5654a8]
add esp, 4
test eax, eax
je 0x4cdf97
push eax
call dword [0x562d20]
jmp 0x4cdf94
push esi
call dword [0x562cec]
add esp, 4
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
mov dword [edi + 0x68], eax
mov dword [ecx + 8], 0
test edx, edx
jne 0x4cdfd0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
cmp dword [ecx + eax*4 + 4], edx
je 0x4cdfd0
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], ecx
inc dword [edi + 0x74]
jmp 0x4c90ca
mov ecx, dword [esi + edi*4 + 4]
lea edx, [esp + 0x34]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x30], ecx
add ecx, ecx
mov eax, dword [esi + 8]
mov eax, dword [eax + ecx*8 + 4]
mov eax, dword [eax + 4]
mov ecx, dword [eax]
mov dword [esp + 0x38], ecx
call fcn.004bb6d0
mov edi, dword [esp + 8]
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4c90ca
mov ecx, dword [esp + 0x18]
mov eax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [esp + 0x34]
cdq
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x1c]
mov dword [ecx], eax
inc edx
jmp 0x4c7d1d
xor edx, edx
jmp 0x4c90c6
mov eax, dword [esp + 8]
mov ecx, eax
mov dword [eax + 0x64], 9
call fcn.004c5950
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
mov dword [ecx + 0x64], eax
mov al, byte [esi + edi*4 + 8]
mov byte [ecx + 0x38], al
mov dword [ecx + 0x60], edx
mov eax, dword [esi + edi*4 + 0x10]
test eax, eax
je 0x4ce08d
push eax
push 0x54e6e8
push dword [esp + 0x18]
lea eax, [ecx + 0x68]
push eax
call fcn.004b39d0
mov ecx, dword [esp + 0x18]
add esp, 0x10
call fcn.004c5950
cmp eax, 5
jne 0x4ce0ad
mov eax, dword [esp + 8]
mov dword [eax + 0x64], 5
mov eax, 5
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 8]
mov eax, 0x65
cmp dword [ecx + 0x64], 0
mov ecx, 1
cmovne eax, ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0x40]
call fcn.004c3060
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x64]
test ecx, ecx
je 0x4ce10b
test esi, esi
je 0x4ce17a
cmp esi, dword [ecx + 0xf0]
jb 0x4ce10b
cmp esi, dword [ecx + 0xf4]
jae 0x4ce10b
mov eax, dword [ecx + 0xec]
mov dword [esi], eax
dec dword [ecx + 0xe4]
mov dword [ecx + 0xec], esi
jmp 0x4ce17a
test esi, esi
je 0x4ce17a
cmp dword [0x562cd0], 0
je 0x4ce170
mov eax, dword [0x5654a8]
test eax, eax
je 0x4ce12b
push eax
call dword [0x562d18]
add esp, 4
push esi
call dword [0x562cf4]
mov ecx, dword [0x565330]
neg eax
add ecx, eax
add esp, 4
mov eax, dword [0x565354]
cmp ecx, eax
mov dword [0x565330], ecx
cmovg eax, ecx
push esi
mov dword [0x565354], eax
call dword [0x562cec]
mov eax, dword [0x5654a8]
add esp, 4
test eax, eax
je 0x4ce17a
push eax
call dword [0x562d20]
jmp 0x4ce177
push esi
call dword [0x562cec]
add esp, 4
mov dword [esp + 0x54], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
push 0x54e6ec
lea eax, [edi + 0x68]
mov byte [esi + 0x1e], 1
push esi
push eax
call fcn.004b39d0
mov dword [edi + 0x64], 7
add esp, 0xc
mov ecx, edi
call fcn.004c5950
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, 0x14
mov dword [esp + 0xc], edx
jmp 0x4ce33f
mov eax, dword [esp + 8]
mov ecx, eax
mov dword [eax + 0x64], 0xb
call fcn.004c5950
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push 0x54ea90
push esi
mov esi, dword [esp + 0x10]
lea eax, [esi + 0x68]
push eax
call fcn.004b39d0
add esp, 0xc
mov dword [esi + 0x64], 5
mov ecx, esi
call fcn.004c5950
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov dword [edi + 0x60], edx
mov byte [eax + 0x1c], 0
mov eax, 5
mov dword [edi + 0x64], 5
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 8]
push ecx
push 0x54eac4
push dword [esp + 0x18]
lea eax, [esi + 0x68]
push eax
call fcn.004b39d0
add esp, 0x10
mov dword [esi + 0x64], 1
mov ecx, esi
call fcn.004c5950
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test ecx, ecx
je 0x4ce2ae
mov ecx, esi
call fcn.005023c0
mov byte [esi + 0x1c], 1
mov esi, dword [esp + 8]
mov ecx, dword [esp + 0x10]
call fcn.00501d00
cmp dword [esi + 0x64], 0
mov eax, 0x65
mov ecx, 1
cmovne eax, ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov al, byte [esp + 0x30]
mov byte [esi + 0x1c], al
mov esi, dword [esp + 8]
mov ecx, esi
call fcn.004c5950
cmp eax, 5
jne 0x4ce28e
mov ecx, dword [esp + 0x10]
mov al, 1
sub al, byte [esp + 0x30]
mov edx, dword [esp + 0x1c]
mov dword [esi + 0x60], edx
mov byte [ecx + 0x1c], al
mov eax, 5
mov dword [esi + 0x64], 5
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x1c]
mov dword [eax + 0x60], edx
mov dword [eax + 0x64], 5
mov eax, 5
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, 0xb
mov dword [esp + 0xc], edx
jmp 0x4ce33b
mov ecx, eax
mov dword [eax + 0x64], 4
call fcn.004c5950
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, 0xd
mov dword [esp + 0xc], edx
jmp 0x4ce33f
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
cmp byte [esi + 0x1e], 0
je 0x4ce358
mov dword [esp + 0xc], 7
mov eax, 7
jmp 0x4ce370
cmp edx, 0xc0a
je 0x4ce50a
movzx eax, dl
mov dword [esp + 0xc], edx
cmp eax, 0x1b
jae 0x4ce37b
mov eax, dword [eax*4 + 0x5494f8]
test eax, eax
jne 0x4ce380
mov eax, str.unknown_error
push eax
push 0x54e6e8
lea eax, [edi + 0x68]
push esi
push eax
call fcn.004b39d0
mov edx, dword [esp + 0x1c]
add esp, 0x10
jmp 0x4ce50a
mov eax, dword [esp + 8]
mov ecx, eax
mov byte [eax + 0x38], 2
mov dword [eax + 0x64], 6
call fcn.004c5950
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 8]
jmp 0x4ce3cb
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x10]
push 0x54ea44
lea eax, [edi + 0x68]
push esi
push eax
call fcn.004b39d0
mov dword [edi + 0x64], 0x12
jmp 0x4ce1b4
mov edi, dword [esp + 8]
mov esi, ecx
jmp 0x4ce3cb
mov ecx, dword [esp + 8]
mov edx, 1
call fcn.004c5840
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
jne 0x4ce506
mov edx, dword [esp + 8]
mov eax, dword [edx + 0x5c]
add eax, 2
or eax, 1
mov dword [edx + 0x5c], eax
mov eax, dword [esi + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea eax, [eax + ecx*8]
mov dword [edx + 0x2c], eax
xor edx, edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
cmp dword [esi + edi*4 + 8], edx
jle 0x4ce4e1
nop
mov eax, dword [esp + 0x30]
lea ecx, [edx + edx*4]
lea esi, [eax + ecx*8]
movzx eax, word [esi + 0x1c]
test eax, 0x200
jne 0x4ce491
test al, 2
je 0x4ce491
mov edx, dword [esi + 0x18]
mov ecx, esi
push 1
add edx, 2
call fcn.004c2d60
add esp, 4
test eax, eax
jne 0x4ce48d
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x14]
mov byte [ecx + eax], 0
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x14]
mov byte [ecx + eax + 1], 0
mov eax, 0x200
or word [esi + 0x1c], ax
mov edx, dword [esp + 0x34]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x30]
movzx eax, word [edx + ecx*8 + 0x1c]
test al, 1
je 0x4ce4a8
mov byte [edx + ecx*8 + 0x1e], 5
jmp 0x4ce4ca
test al, 4
je 0x4ce4b3
mov byte [edx + ecx*8 + 0x1e], 1
jmp 0x4ce4ca
test al, 8
je 0x4ce4be
mov byte [edx + ecx*8 + 0x1e], 2
jmp 0x4ce4ca
and al, 2
neg al
sbb al, al
add al, 4
mov byte [edx + ecx*8 + 0x1e], al
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x14]
inc edx
mov dword [esp + 0x34], edx
cmp edx, dword [eax + edi*4 + 8]
jl 0x4ce440
mov esi, dword [esp + 0x10]
cmp byte [esi + 0x1e], 0
jne 0x4ce581
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x1c]
inc eax
mov dword [ecx + 0x60], eax
mov eax, 0x64
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 8]
mov ecx, eax
mov dword [eax + 0x64], edx
call fcn.004c5950
cmp dword [esp + 0xc], 0xc0a
jne 0x4ce1be
mov byte [esi + 0x1e], 1
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov esi, ecx
jmp 0x4ce53b
mov esi, eax
mov edi, dword [esp + 8]
mov eax, dword [0x54951c]
mov ecx, str.unknown_error
test eax, eax
mov dword [edi + 0x64], 9
cmovne ecx, eax
lea eax, [edi + 0x68]
push ecx
push 0x54e6e8
push esi
push eax
call fcn.004b39d0
add esp, 0x10
mov dword [edi + 0x64], 9
mov ecx, edi
call fcn.004c5950
pop edi
mov eax, 1
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 8]
jmp 0x4ce19a
mov edi, dword [esp + 8]
mov esi, eax
jmp 0x4ce19a