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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x17c
mov eax, dword [0x600600]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
imul eax, edi, 0x88
mov dword [ebp - 0xb0], edi
mov dword [ebp - 0x14c], 0
mov dword [ebp - 0xfc], eax
lea eax, [eax + 0x600188]
mov dword [ebp - 0xe4], eax
cmp edi, 2
jge 0x51cde3
mov eax, dword [0x606c38]
mov dword [ebp - 0xe8], eax
cmp eax, dword [0x606c34]
ja 0x51cde3
mov ebx, dword [0x606c30]
lea edi, [eax - 4]
push 0x64
push edi
push ebx
call fcn.00518eb0
lea esi, [ebx + 4]
cmp esi, edi
ja 0x51cdaa
mov ecx, dword [ebp - 0xe8]
mov edi, dword [esi]
mov eax, esi
cmp esi, ebx
jbe 0x51cd9e
mov edx, dword [eax - 4]
cmp edi, edx
jae 0x51cd98
mov dword [eax], edx
add eax, 0xfffffffc
cmp eax, ebx
ja 0x51cd88
mov ecx, dword [ebp - 0xe8]
mov dword [eax], edi
add esi, 4
lea eax, [ecx - 4]
cmp esi, eax
jbe 0x51cd80
mov ecx, dword [0x6083d0]
mov eax, 0x6081b4
mov edx, dword [0x60738c]
test ecx, ecx
mov edi, dword [ebp - 0xb0]
cmovne edx, dword [0x6081b4]
or edx, 1
mov dword [ebp - 0x14c], 1
test ecx, ecx
mov ecx, 0x60738c
cmove eax, ecx
mov dword [eax], edx
call fcn.00523830
mov eax, dword [ebp - 0xfc]
mov dword [ebp - 0xe8], edi
lea eax, [eax + 0x6001b4]
mov dword [ebp - 0xac], eax
cmp dword [0x606c4c], 0
mov ebx, dword [eax - 4]
je 0x51cfd0
test ebx, ebx
je 0x51ce2d
test byte [ebx + 0x14], 1
je 0x51ce2d
nop word [eax + eax]
mov ebx, dword [ebx + 0x18]
test ebx, ebx
je 0x51ce2d
test byte [ebx + 0x14], 1
jne 0x51ce20
mov esi, ebx
nop
mov edi, dword [esi + 0x10]
mov dword [esi + 0x28], 0
mov ecx, dword [0x60014c]
cmp ecx, edi
jb 0x51ceea
cmp ecx, dword [esi + 8]
jae 0x51ceea
cmp esi, ebx
jne 0x51ce8a
mov edi, dword [eax]
mov eax, dword [edi]
and eax, 0xfffffffc
mov dword [ebp - 0xfc], eax
mov eax, dword [eax]
movzx edx, ax
test eax, eax
jns 0x51ce71
imul edx, dword [edi + 4]
jmp 0x51ce73
xor edx, edx
mov eax, dword [ebp - 0xfc]
mov eax, dword [eax + 4]
add eax, 3
add eax, edx
and eax, 0xfffffffc
add edi, eax
cmp ecx, edi
jbe 0x51ceea
test edi, edi
je 0x51ceea
mov eax, ecx
sub eax, edi
mov dword [ebp - 0xfc], eax
je 0x51ceea
mov eax, dword [0x600438]
test eax, eax
jne 0x51ceaf
push dword [0x60014c]
push edi
call fcn.0050e170
mov eax, dword [0x6061b0]
mov dword [edi], eax
mov eax, dword [ebp - 0xfc]
add eax, 0xfffffff4
mov dword [edi + 4], eax
call fcn.00500bb0
and eax, 1
xor edx, edx
or eax, edx
je 0x51cee4
push dword [edi + 4]
lea eax, [edi + 8]
push 0xcc
push eax
call fcn.00528f70
add esp, 0xc
mov ecx, dword [0x60014c]
mov eax, dword [0x606c4c]
cmp eax, dword [esi + 0x10]
jb 0x51cf77
cmp eax, dword [esi + 8]
jae 0x51cf77
mov eax, dword [0x600438]
test eax, eax
jne 0x51cf3b
mov edi, dword [0x606c4c]
mov edx, dword [edi]
and edx, 0xfffffffc
mov eax, dword [edx]
movzx ecx, ax
test eax, eax
jns 0x51cf24
imul ecx, dword [edi + 4]
jmp 0x51cf26
xor ecx, ecx
mov eax, dword [edx + 4]
push dword [esi]
add eax, 3
add eax, ecx
and eax, 0xfffffffc
add eax, edi
push eax
call fcn.0050e170
cmp dword [esi + 0x28], 0
jne 0x51cf46
mov eax, dword [esi]
mov dword [esi + 0x28], eax
mov edi, dword [0x606c4c]
mov edx, dword [edi]
and edx, 0xfffffffc
mov eax, dword [edx]
movzx ecx, ax
test eax, eax
jns 0x51cf60
imul ecx, dword [edi + 4]
jmp 0x51cf62
xor ecx, ecx
mov eax, dword [edx + 4]
add eax, 3
add eax, ecx
and eax, 0xfffffffc
add eax, edi
mov dword [esi], eax
mov ecx, dword [0x60014c]
cmp dword [esi + 8], ecx
jb 0x51cf87
mov eax, dword [esi + 0x10]
cmp eax, dword [0x606c4c]
jbe 0x51cf9c
mov eax, dword [0x600438]
cmp dword [esi + 0x28], 0
jne 0x51cf97
mov eax, dword [esi]
mov dword [esi + 0x28], eax
mov eax, dword [esi + 0x10]
mov dword [esi], eax
mov esi, dword [esi + 0x18]
test esi, esi
je 0x51cfbf
test byte [esi + 0x14], 1
je 0x51cfbd
nop dword [eax]
mov esi, dword [esi + 0x18]
test esi, esi
je 0x51cfbf
test byte [esi + 0x14], 1
jne 0x51cfb0
test esi, esi
mov eax, dword [ebp - 0xac]
jne 0x51ce30
jmp 0x51d067
test ebx, ebx
je 0x51cfed
test byte [ebx + 0x14], 1
je 0x51cfed
nop word [eax + eax]
mov ebx, dword [ebx + 0x18]
test ebx, ebx
je 0x51cfed
test byte [ebx + 0x14], 1
jne 0x51cfe0
mov esi, ebx
nop
mov edi, dword [esi + 0x10]
mov dword [esi + 0x28], 0
cmp esi, ebx
jne 0x51d021
mov edx, dword [eax]
mov eax, dword [edx]
and eax, 0xfffffffc
mov ecx, dword [eax]
test ecx, ecx
jns 0x51d014
movzx ecx, cx
imul ecx, dword [edx + 4]
jmp 0x51d016
xor ecx, ecx
lea edi, [ecx + 3]
add edi, dword [eax + 4]
and edi, 0xfffffffc
add edi, edx
mov eax, dword [0x600438]
test eax, eax
jne 0x51d032
push dword [esi]
push edi
call fcn.0050e170
cmp dword [esi + 0x28], 0
jne 0x51d03d
mov eax, dword [esi]
mov dword [esi + 0x28], eax
mov dword [esi], edi
mov esi, dword [esi + 0x18]
test esi, esi
je 0x51d05f
test byte [esi + 0x14], 1
je 0x51d05d
nop dword [eax]
mov esi, dword [esi + 0x18]
test esi, esi
je 0x51d05f
test byte [esi + 0x14], 1
jne 0x51d050
test esi, esi
mov eax, dword [ebp - 0xac]
jne 0x51cff0
mov ecx, dword [ebp - 0xe8]
mov eax, dword [ebp - 0xac]
inc ecx
mov edi, dword [ebp - 0xb0]
add eax, 0x88
mov dword [ebp - 0xe8], ecx
mov dword [ebp - 0xac], eax
cmp ecx, edi
jle 0x51ce00
mov esi, dword [ebp - 0xe4]
mov eax, dword [esi + 0x28]
mov dword [ebp - 0xf8], eax
test eax, eax
je 0x51d0c3
test byte [eax + 0x14], 1
je 0x51d0c3
nop dword [eax]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x51d0bd
test byte [eax + 0x14], 1
jne 0x51d0b0
mov dword [ebp - 0xf8], eax
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [esi + 0x2c]
mov dword [ebp - 0xdc], eax
mov eax, dword [0x606c30]
mov dword [ebp - 0x124], eax
xor eax, eax
mov dword [ebp - 0x114], eax
mov eax, edx
sub eax, dword [0x607254]
shr eax, 0xb
mov dword [ebp - 0x108], edx
mov dword [ebp - 0xac], edx
mov dword [ebp - 0xe0], edx
mov dword [ebp - 0xf0], 0
mov dword [ebp - 0x104], ecx
mov dword [ebp - 0xbc], eax
cmp edi, 2
je 0x51d12a
cmp dword [0x6083c0], ecx
je 0x51d12a
xor ebx, ebx
lea eax, [edi + 1]
jmp 0x51d131
mov ebx, 1
mov eax, edi
mov dword [ebp - 0xd0], eax
lea eax, [ebp - 0x98]
mov dword [ebp - 0xc4], ecx
mov ecx, 0xd
mov dword [ebp - 0xcc], edi
mov dword [ebp - 0x110], ebx
mov dword [ebp - 0xa4], esi
nop word [eax + eax]
mov dword [eax - 8], 0
lea eax, [eax + 0xc]
mov dword [eax - 0x10], 0
mov dword [eax - 0xc], 0
sub ecx, 1
jne 0x51d160
mov dword [ebp - 0x150], ecx
mov dword [ebp - 0x134], ecx
mov dword [ebp - 0x138], ecx
mov dword [ebp - 0xe8], ecx
mov dword [ebp - 0x13c], ecx
mov dword [ebp - 0x158], ecx
mov dword [ebp - 0x154], ecx
mov dword [ebp - 0x15c], ecx
mov dword [ebp - 0xfc], ecx
cmp edi, 2
jge 0x51d2cd
lea ecx, [edi + 1]
mov eax, 2
cmp ecx, eax
cmovl eax, ecx
xor edx, edx
imul edi, eax, 0x88
add edi, 0x600188
mov dword [ebp - 0xc4], edi
mov esi, dword [edi + 0x3c]
test esi, esi
je 0x51d217
lea ecx, [edx + edx*2]
shl ecx, 2
test edx, edx
jne 0x51d1f3
lea eax, [edi + 0x40]
jmp 0x51d1fb
mov eax, dword [edi + 0x4c]
add eax, 0xfffffff4
add eax, ecx
movq xmm0, qword [eax]
inc edx
mov eax, dword [eax + 8]
movq qword [ebp + ecx - 0xa0], xmm0
mov dword [ebp + ecx - 0x98], eax
cmp edx, esi
jb 0x51d1e4
mov eax, dword [edi + 0x68]
mov ecx, dword [edi + 0x28]
mov dword [ebp - 0x150], eax
mov eax, dword [edi + 0x6c]
mov dword [ebp - 0x134], eax
mov eax, dword [edi + 0x54]
mov dword [ebp - 0x138], eax
mov eax, dword [edi + 0x5c]
mov dword [ebp - 0xe8], eax
mov eax, dword [edi + 0x58]
mov dword [ebp - 0x13c], eax
mov eax, dword [edi + 4]
mov dword [ebp - 0x154], eax
mov eax, dword [edi]
mov dword [ebp - 0x158], eax
mov eax, dword [edi + 0x34]
mov dword [ebp - 0x15c], eax
mov eax, dword [edi + 0x30]
mov dword [edi + 0x64], 0
mov dword [ebp - 0xfc], eax
test ecx, ecx
je 0x51d28d
test byte [ecx + 0x14], 1
je 0x51d28d
nop dword [eax + eax]
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x51d28d
test byte [ecx + 0x14], 1
jne 0x51d280
mov edx, dword [0x607238]
cmp ecx, edx
je 0x51d2c7
test ecx, ecx
je 0x51d2c7
nop dword [eax + eax]
cmp ecx, edx
je 0x51d2c7
mov eax, dword [ecx]
mov dword [ecx + 0x24], eax
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x51d2c7
test byte [ecx + 0x14], 1
je 0x51d2c3
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x51d2c7
test byte [ecx + 0x14], 1
jne 0x51d2b6
test ecx, ecx
jne 0x51d2a0
mov edi, dword [ebp - 0xb0]
imul edx, edi, 0x88
mov esi, edi
add edx, 0x6001b0
nop dword [eax + eax]
mov ecx, dword [edx]
test ecx, ecx
je 0x51d325
test byte [ecx + 0x14], 1
je 0x51d2fd
nop dword [eax]
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x51d325
test byte [ecx + 0x14], 1
jne 0x51d2f0
test ecx, ecx
je 0x51d325
mov eax, dword [ecx + 0x10]
mov dword [ecx + 0x24], eax
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x51d325
test byte [ecx + 0x14], 1
je 0x51d321
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x51d325
test byte [ecx + 0x14], 1
jne 0x51d314
test ecx, ecx
jne 0x51d301
inc esi
add edx, 0x88
cmp esi, edi
jle 0x51d2e0
mov ecx, dword [ebp - 0xb0]
test ecx, ecx
js 0x51d421
imul edx, ecx, 0x88
add edx, 0x6001d4
nop word [eax + eax]
xor esi, esi
cmp dword [edx - 0x10], esi
jbe 0x51d386
test esi, esi
jne 0x51d362
lea eax, [edx - 0xc]
mov dword [eax], esi
jmp 0x51d379
mov eax, dword [edx]
lea ecx, [esi + esi*2]
shl ecx, 2
mov dword [ecx + eax - 0xc], 0
mov eax, dword [edx]
add eax, 0xfffffff4
add eax, ecx
inc esi
mov dword [eax + 4], 0
cmp esi, dword [edx - 0x10]
jb 0x51d357
mov dword [edx + 0x1c], 0
mov ecx, dword [edx - 0x24]
mov dword [edx + 0x20], 0
mov dword [edx + 0x24], 0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
mov dword [edx + 8], 0
mov dword [edx + 0xc], 0
mov dword [edx + 0x34], 0
mov dword [edx + 0x30], 0
mov dword [edx + 0x28], 0
test ecx, ecx
je 0x51d3ed
test byte [ecx + 0x14], 1
je 0x51d3ed
nop dword [eax]
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x51d3ed
test byte [ecx + 0x14], 1
jne 0x51d3e0
mov eax, dword [edx - 0x24]
mov dword [edx - 0x1c], ecx
cmp eax, dword [0x607238]
je 0x51d400
mov eax, dword [ecx + 0x10]
jmp 0x51d403
mov eax, dword [edx - 0x20]
mov dword [edx - 0x4c], eax
mov dword [edx - 0x48], eax
mov dword [edx - 0x18], eax
sub edx, 0x88
sub edi, 1
jns 0x51d350
mov ecx, dword [ebp - 0xb0]
xor eax, eax
mov dword [0x606e58], 0xffffffff
test ebx, ebx
mov edx, 1
cmovne eax, edx
cmp dword [0x6083c0], 0
mov dword [ebp - 0x144], eax
mov eax, dword [0x607238]
mov eax, dword [eax]
mov dword [0x606e5c], eax
je 0x51d464
cmp dword [0x6083bc], edx
jne 0x51d464
mov eax, dword [0x608388]
xor eax, 0x20
je 0x51d466
mov eax, edx
mov dword [0x600150], eax
mov eax, dword [0x609490]
mov dword [0x606fdc], 0
cmp eax, 5
jl 0x51d4b0
mov eax, dword [0x609498]
test al, 1
je 0x51d4b0
cmp ecx, 1
jne 0x51d4b0
xor ecx, ecx
mov byte [ebp - 0xb5], dl
push 0x90
push ecx
push 0x6081c8
mov dword [ebp - 0xc0], ecx
call fcn.00528f70
add esp, 0xc
jmp 0x51d4bf
xor ecx, ecx
mov byte [ebp - 0xb5], 0
mov dword [ebp - 0xc0], ecx
mov eax, dword [0x609494]
cmp eax, 5
jl 0x51d4d9
mov eax, dword [0x60949c]
mov byte [ebp - 0xc5], 1
test al, 1
jne 0x51d4e0
mov byte [ebp - 0xc5], 0
mov ebx, dword [ebp - 0xac]
mov edx, ebx
mov edi, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xbc]
mov esi, dword [ebp - 0xf8]
nop word [eax + eax]
cmp ebx, edi
jb 0x51d5bc
cmp dword [esi + 0x28], 0
jne 0x51d519
mov eax, dword [esi]
mov dword [esi + 0x28], eax
mov eax, dword [ebp - 0xbc]
push edx
push ebx
push eax
push dword [ebp - 0xf0]
mov dword [esi], edx
call fcn.00524450
xor eax, eax
mov dword [ebp - 0x114], eax
mov dword [ebp - 0xf0], eax
mov eax, dword [esi + 0x18]
test eax, eax
je 0x51decb
test byte [eax + 0x14], 1
je 0x51d569
nop dword [eax + eax]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x51decb
test byte [eax + 0x14], 1
jne 0x51d550
test eax, eax
je 0x51decb
mov esi, dword [esi + 0x18]
mov dword [ebp - 0xf8], esi
test esi, esi
je 0x51d593
test byte [esi + 0x14], 1
je 0x51d593
nop dword [eax]
mov esi, dword [esi + 0x18]
test esi, esi
je 0x51d58d
test byte [esi + 0x14], 1
jne 0x51d580
mov dword [ebp - 0xf8], esi
mov ebx, dword [esi + 0x10]
mov edx, ebx
mov edi, dword [esi]
mov eax, ebx
sub eax, dword [0x607254]
shr eax, 0xb
mov dword [ebp - 0xdc], edi
mov dword [ebp - 0xe0], edx
mov dword [ebp - 0xbc], eax
jmp 0x51d500
xor esi, esi
xor edi, edi
xor eax, eax
mov dword [ebp - 0xf4], esi
mov dword [ebp - 0x100], edi
mov dword [ebp - 0xec], esi
mov dword [ebp - 0x118], eax
nop word [eax + eax]
test byte [ebx], 1
je 0x51dd96
mov dword [ebp - 0xd4], edx
mov ecx, ebx
mov dword [ebp - 0xa8], ecx
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x12c], 0
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x130], 0
test esi, esi
jne 0x51d644
test edi, edi
jne 0x51d644
mov eax, ebx
mov dword [ebx - 0xc], edi
sub eax, edx
mov dword [ebx - 8], edi
mov dword [ebx - 0x10], eax
mov eax, dword [ebp - 0x118]
test dword [ebx - 4], 0x20000000
je 0x51d6b7
xor esi, esi
cmp dword [ebp - 0xf4], esi
jne 0x51d65b
test edi, edi
je 0x51d660
mov esi, 1
mov dword [ebp - 0x120], 1
mov dword [ebp - 0xf4], 0
test edi, edi
je 0x51d684
mov dword [ebp - 0xb4], 1
jmp 0x51d6ef
push eax
push esi
push ebx
mov dword [ebp - 0x100], 1
mov dword [ebp - 0xec], ebx
call fcn.00512cd0
test esi, esi
je 0x51d6ef
mov dword [ebx - 0xc], 0
mov dword [ebx - 8], 0
mov dword [ebx - 0x10], 0xc
jmp 0x51d6ef
test edi, edi
je 0x51d6dd
push ebx
push eax
push dword [ebp - 0xec]
call fcn.005229a0
mov dword [ebx - 0xc], 0
mov dword [ebx - 8], 0
mov dword [ebx - 0x10], 0xc
xor eax, eax
mov dword [ebp - 0xf4], 1
mov dword [ebp - 0x100], eax
mov esi, ebx
mov ebx, dword [ebp - 0x120]
mov edx, dword [esi]
mov edi, edx
and edi, 1
je 0x51d78d
mov ecx, dword [esi - 4]
mov eax, ecx
shr eax, 0x1d
and eax, 1
cmp eax, ebx
jne 0x51d78d
test eax, eax
je 0x51d720
and ecx, 0xdfffffff
mov dword [esi - 4], ecx
and edx, 0xfffffffc
mov dword [ebp - 0x118], esi
mov dword [esi], edx
mov eax, dword [edx]
test eax, eax
jns 0x51d73a
movzx ecx, ax
imul ecx, dword [esi + 4]
jmp 0x51d73c
xor ecx, ecx
mov eax, dword [edx + 4]
add eax, 3
add eax, ecx
and eax, 0xfffffffc
add esi, eax
prefetcht0 byte [esi]
cmp esi, dword [ebp - 0xdc]
jb 0x51d6f7
xor eax, eax
cmp dword [ebp - 0x120], 0
mov ecx, esi
mov ebx, esi
mov dword [ebp - 0xe0], ecx
mov dword [ebp - 0xac], ebx
je 0x51d7d0
test eax, eax
je 0x51d7b5
and dword [esi], 0xfffffffc
mov edx, dword [esi]
mov dword [ebp - 0x118], esi
mov eax, dword [edx]
test eax, eax
jns 0x51d7a0
movzx ecx, ax
imul ecx, dword [esi + 4]
jmp 0x51d7a2
cmp esi, dword [ebp - 0xdc]
jae 0x51d754
test edi, edi
je 0x51d754
mov eax, 1
jmp 0x51d756
xor ecx, ecx
mov eax, dword [edx + 4]
add eax, 3
add eax, ecx
and eax, 0xfffffffc
mov dword [ebp - 0x140], eax
add esi, eax
mov edi, dword [ebp - 0xa8]
mov ebx, esi
mov dword [ebp - 0xac], ebx
mov dword [ebp - 0xe0], ebx
sub ebx, edi
jmp 0x51d898
mov edi, dword [ebp - 0xa8]
test eax, eax
je 0x51d7ec
mov dword [ebp - 0x12c], 1
mov dword [ebp - 0xe0], ebx
jmp 0x51d816
mov eax, dword [ebp - 0x118]
mov ebx, ecx
mov dword [ebp - 0xac], ecx
mov esi, ecx
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x12c], 0
mov dword [ebp - 0x140], 0
sub ebx, edi
cmp dword [ebp - 0x110], 0
je 0x51d898
cmp dword [0x6083bc], 2
jne 0x51d898
mov eax, dword [ebp - 0xa4]
cmp ebx, 0x1000
jbe 0x51d89e
mov ecx, edi
sub ecx, dword [eax]
cmp ebx, 0x8000
jbe 0x51d89e
test ecx, ecx
jle 0x51d89e
mov eax, ebx
shr eax, 4
cmp ecx, eax
jae 0x51d898
cmp dword [ebp - 0xec], 0
je 0x51d866
mov dword [ebp - 0xb4], 1
jmp 0x51d876
push 0
push 0
push edi
call fcn.00512cd0
mov dword [ebp - 0xec], edi
xor ecx, ecx
mov dword [ebp - 0x100], 1
mov dword [ebp - 0xf4], ecx
mov dword [ebp - 0x120], 1
mov dword [ebp - 0x130], ebx
mov eax, dword [ebp - 0xa4]
cmp dword [ebp - 0x144], 0
je 0x51d902
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push 0xc
push eax
mov dword [ebp - 0x144], 0
call fcn.00509910
mov ecx, dword [ebp - 0xe4]
mov edx, edi
mov dword [ecx + 0x74], eax
mov dword [ecx + 0x78], 0xc
mov ecx, dword [ebp - 0xa4]
mov eax, dword [ecx]
sub edx, eax
mov ecx, dword [ecx + 4]
sub ecx, eax
cmp ecx, edx
cmovbe edx, ecx
cmp edx, 0xc
jae 0x51d902
mov ecx, dword [ebp - 0xe4]
lea eax, [edx + 0xc]
mov dword [ecx + 0x78], eax
mov eax, dword [ebp - 0xa4]
add dword [eax], edx
mov ecx, dword [ebp - 0xf8]
cmp ecx, dword [0x607238]
jne 0x51d938
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp - 0xcc]
push eax
lea eax, [ebp - 0xd0]
push eax
push edi
call fcn.0051f0e0
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ebp - 0xcc]
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x128], 0
lea eax, [edx + edx*2]
shl eax, 5
mov dword [ebp - 0x148], eax
add dword [eax + 0x607004], ebx
cmp dword [ebp - 0x120], 0
jne 0x51daac
cmp dword [ebp - 0x110], 0
push edi
je 0x51d996
xor eax, eax
cmp dword [ebp - 0x12c], eax
push ecx
cmovne eax, dword [ebp - 0xe0]
push eax
lea eax, [ebp - 0x11c]
push eax
push edx
jmp 0x51d9f8
push edx
push ebx
push dword [ebp - 0xc4]
call fcn.0050a000
mov edi, eax
test edi, edi
je 0x51d9b0
mov eax, 1
jmp 0x51da0c
mov ecx, dword [ebp - 0xc4]
mov eax, dword [ebp - 0x110]
cmp dword [ecx + 0x3c], 1
mov ecx, 1
cmove eax, ecx
mov ecx, dword [ebp - 0xa8]
mov dword [ebp - 0x110], eax
xor eax, eax
cmp dword [ebp - 0x12c], eax
push ecx
push dword [ebp - 0xf8]
cmovne eax, dword [ebp - 0xe0]
push eax
lea eax, [ebp - 0x11c]
push eax
push dword [ebp - 0xcc]
push ebx
push dword [ebp - 0xa4]
call fcn.00509910
mov edi, eax
mov eax, dword [ebp - 0x128]
cmp byte [ebp - 0xb5], 0
je 0x51da4c
test eax, eax
jne 0x51da4c
mov edx, dword [ebp - 0xc4]
mov eax, ebx
mov ecx, dword [edx + 0x38]
shr eax, cl
or eax, 1
bsr ecx, eax
mov eax, dword [edx + 0x3c]
dec eax
cmp eax, ecx
cmovb ecx, eax
lea eax, [ecx + ecx*2]
inc dword [eax*4 + 0x6081cc]
add dword [eax*4 + 0x6081d0], ebx
add dword [ebp - 0xc0], ebx
cmp dword [ebp - 0x11c], 0
je 0x51da83
mov edi, dword [ebp - 0xa8]
xor ecx, ecx
push ecx
push ecx
push edi
mov dword [ebp - 0xf4], ecx
mov dword [ebp - 0x100], 1
mov dword [ebp - 0x130], ebx
call fcn.00512cd0
mov dword [ebp - 0xec], edi
jmp 0x51dadc
mov ebx, dword [ebp - 0xa8]
test edi, edi
je 0x51dc19
test byte [ebx], 1
je 0x51dc19
mov ecx, dword [ebp - 0x148]
add dword [ecx + 0x607014], 0xc
jmp 0x51dc19
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0x100]
mov dword [ebp - 0x100], eax
mov eax, dword [ebp - 0xec]
mov dword [ebp - 0xec], eax
cmp byte [ebp - 0xc5], 0
je 0x51db1d
cmp dword [ebp - 0xb4], 0
je 0x51daf2
xor edi, edi
jmp 0x51daf5
mov edi, dword [edi - 0x10]
mov eax, dword [0x609494]
cmp eax, 5
jl 0x51db1d
mov eax, dword [0x60949c]
test al, 1
je 0x51db1d
call fcn.004fac30
mov ecx, dword [ebp - 0xa8]
push edi
push esi
mov edx, dword [eax]
push ecx
mov ecx, eax
call dword [edx + 0x40]
cmp dword [ebp - 0xb4], 0
je 0x51db8a
cmp dword [ebp - 0xec], 0
je 0x51dbd1
imul eax, dword [0x606c24], 0x4c
mov ecx, dword [0x6071f0]
mov dword [ebp - 0x128], ecx
lea edi, [ecx - 0x48]
add edi, eax
mov dword [ebp - 0x11c], edi
cmp dword [eax + ecx - 4], 0
je 0x51db86
mov edx, dword [edi]
mov edi, dword [ebp - 0x128]
mov dword [eax + ecx - 4], 0
mov ecx, dword [eax + ecx - 0x4c]
movq xmm0, qword [eax + edi - 0x2c]
movq qword [edx + ecx - 0x10], xmm0
mov eax, dword [eax + edi - 0x24]
mov edi, dword [ebp - 0x11c]
mov dword [edx + ecx - 8], eax
add dword [edi], ebx
jmp 0x51dbd1
imul ecx, dword [0x606c24], 0x4c
mov eax, dword [0x6071f0]
mov edx, dword [ebp - 0xa4]
mov dword [ecx + eax + 4], ebx
mov ecx, dword [0x606c24]
inc ecx
mov dword [0x606c24], ecx
test edx, edx
je 0x51dbd1
mov eax, dword [0x606c28]
cmp eax, ecx
je 0x51dbd1
imul ecx, eax, 0x4c
mov eax, dword [0x6071f0]
mov eax, dword [ecx + eax]
cmp eax, dword [edx]
jb 0x51dbd1
cmp eax, dword [edx + 4]
jae 0x51dbd1
mov dword [edx + 4], eax
mov ecx, dword [ebp - 0x148]
mov eax, esi
mov ebx, dword [ebp - 0xa8]
sub eax, ebx
mov edi, ebx
add dword [ecx + 0x607008], eax
mov eax, dword [ebp - 0x140]
add dword [ecx + 0x607010], eax
mov eax, dword [ebp - 0x130]
add dword [ecx + 0x60700c], eax
cmp dword [0x600150], 0
jne 0x51dc19
cmp dword [ebp - 0xcc], 1
jne 0x51dc19
mov dword [0x606e60], esi
cmp dword [ebp - 0xb4], 0
jne 0x51dd6c
mov ecx, dword [ebp - 0xbc]
mov eax, ebx
sub eax, dword [0x607254]
shr eax, 0xb
cmp ecx, eax
je 0x51dc60
push dword [ebp - 0xd4]
push ebx
push ecx
push dword [ebp - 0xf0]
call fcn.00524450
mov dword [ebp - 0xbc], eax
xor eax, eax
mov dword [ebp - 0x114], eax
xor ecx, ecx
jmp 0x51dc6c
mov eax, dword [ebp - 0x114]
mov ecx, dword [ebp - 0xf0]
mov edx, eax
mov dword [ebp - 0xf0], ecx
mov eax, dword [ebx - 0xc]
sub edi, ebx
and eax, 1
or edi, eax
mov eax, dword [ebp - 0x104]
mov dword [ebx - 0xc], edi
test eax, eax
je 0x51dca9
mov eax, dword [eax - 0xc]
mov ecx, edi
and ecx, 0xfffffffc
and eax, 0xfffffffc
add ecx, dword [ebx - 0x10]
cmp eax, ecx
mov ecx, dword [ebp - 0xf0]
jne 0x51dca9
or edi, 2
mov dword [ebx - 0xc], edi
mov eax, dword [ebp - 0x114]
test eax, eax
jne 0x51dccf
mov ecx, ebx
inc eax
sub ecx, ebx
mov dword [ebp - 0x114], eax
mov word [ebx - 8], cx
mov ecx, ebx
mov dword [ebp - 0xf0], ecx
jmp 0x51dd66
inc eax
mov dword [ebp - 0x114], eax
test eax, edx
jne 0x51dcea
sub ecx, ebx
mov word [ebx - 8], cx
mov ecx, ebx
mov dword [ebp - 0xf0], ecx
jmp 0x51dd66
test al, 1
je 0x51dcfe
mov ecx, dword [ebp - 0x104]
mov eax, ebx
sub eax, ecx
mov word [ecx - 6], ax
jmp 0x51dd66
mov edx, ecx
mov ecx, eax
shr ecx, 1
and eax, 0x5555
and ecx, 0x5555
add ecx, eax
mov eax, ecx
and ecx, 0x3333
shr eax, 2
and eax, 0x3333
add eax, ecx
mov ecx, eax
and eax, 0xf0f
shr ecx, 4
and ecx, 0xf0f
add ecx, eax
movzx eax, cl
shr ecx, 8
add ecx, 0xfffffffe
add ecx, eax
je 0x51dd4d
movsx eax, word [edx - 6]
add edx, eax
sub ecx, 1
jne 0x51dd42
mov ax, word [edx - 6]
sub ax, bx
movzx ecx, dx
add ax, cx
mov word [ebx - 8], ax
mov eax, ebx
sub eax, ecx
mov word [edx - 6], ax
mov dword [ebp - 0x104], ebx
cmp esi, dword [ebp - 0xdc]
mov ebx, dword [ebp - 0xac]
mov edx, dword [ebp - 0xe0]
mov edi, dword [ebp - 0x100]
mov eax, dword [ebp - 0x118]
mov esi, dword [ebp - 0xf4]
jb 0x51d5e0
cmp dword [ebp - 0x14c], 0
mov eax, dword [0x606c38]
je 0x51ddf0
mov ecx, dword [ebp - 0x124]
cmp ecx, eax
jae 0x51ddc1
nop
cmp dword [ecx], ebx
ja 0x51ddbb
add ecx, 4
cmp ecx, eax
jb 0x51ddb0
mov dword [ebp - 0x124], ecx
mov edi, dword [ebp - 0xdc]
mov esi, edi
cmp ecx, eax
jae 0x51ddcf
mov esi, dword [ecx]
mov eax, dword [0x600438]
test eax, eax
jne 0x51debe
push esi
push ebx
call fcn.0050e170
mov edx, dword [ebp - 0xe0]
mov ebx, esi
jmp 0x51d4ee
mov edi, dword [ebp - 0xdc]
mov esi, ebx
mov eax, dword [0x600438]
cmp ebx, edi
jae 0x51debe
test eax, eax
jne 0x51de90
nop dword [eax]
test byte [esi], 1
jne 0x51debe
cmp esi, dword [0x607284]
jb 0x51de56
cmp esi, dword [0x607288]
jae 0x51de56
mov ebx, dword [0x607268]
mov ecx, esi
mov edi, esi
shr ecx, 3
shr edi, 8
and ecx, 0x1f
mov eax, 1
shl eax, cl
mov edx, dword [ebx + edi*4]
test edx, eax
je 0x51de50
btr edx, ecx
mov dword [ebx + edi*4], edx
mov edi, dword [ebp - 0xdc]
mov eax, dword [esi]
and eax, 0xfffffffc
mov ecx, dword [eax]
test ecx, ecx
jns 0x51de6a
movzx ecx, cx
imul ecx, dword [esi + 4]
jmp 0x51de6c
xor ecx, ecx
mov eax, dword [eax + 4]
add eax, 3
add eax, ecx
and eax, 0xfffffffc
add esi, eax
prefetcht0 byte [esi]
cmp esi, edi
jb 0x51de10
mov edx, dword [ebp - 0xe0]
mov ebx, esi
jmp 0x51d4ee
mov eax, dword [esi]
test al, 1
jne 0x51debe
and eax, 0xfffffffc
mov ecx, dword [eax]
test ecx, ecx
jns 0x51dea8
movzx ecx, cx
imul ecx, dword [esi + 4]
jmp 0x51deaa
xor ecx, ecx
mov eax, dword [eax + 4]
add eax, 3
add eax, ecx
and eax, 0xfffffffc
add esi, eax
prefetcht0 byte [esi]
cmp esi, edi
jb 0x51de90
mov edx, dword [ebp - 0xe0]
mov ebx, esi
jmp 0x51d4ee
mov edi, dword [0x606c28]
mov esi, dword [ebp - 0xa4]
mov edx, dword [0x607238]
mov dword [ebp - 0xa8], esi
cmp edi, dword [0x606c24]
je 0x51e102
mov ebx, dword [ebp - 0xd0]
mov eax, dword [0x6083c0]
nop word [eax + eax]
test eax, eax
je 0x51dff5
mov eax, dword [0x6071f0]
imul ecx, edi, 0x4c
mov eax, dword [ecx + eax]
mov dword [ebp - 0xd4], eax
cmp eax, dword [edx + 0x10]
jb 0x51dff5
cmp eax, dword [edx + 8]
jae 0x51dff5
mov ecx, dword [esi + 0x30]
cmp ecx, edx
je 0x51df60
mov eax, dword [esi]
mov esi, 0x600210
mov dword [ecx + 0x24], eax
mov edx, dword [0x607238]
mov edi, dword [0x606c28]
mov eax, dword [edx + 0x10]
mov dword [0x600210], eax
mov dword [0x600214], eax
mov dword [0x600244], eax
mov dword [0x600240], edx
mov dword [ebp - 0xa8], esi
mov dword [ebp - 0xa4], esi
test ebx, ebx
jle 0x51dff5
imul edi, ebx, 0x88
add edi, 0x600200
dec ebx
lea edi, [edi - 0x88]
cmp ebx, 1
jne 0x51dfa5
cmp dword [0x600150], 0
mov eax, dword [0x600314]
mov dword [0x607398], eax
jne 0x51dfa5
push esi
call fcn.00509560
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push 0xc
push esi
call fcn.00509910
mov dword [edi - 4], eax
mov dword [edi], 0xc
mov ecx, dword [esi + 4]
sub ecx, dword [esi]
cmp ecx, 0xc
jae 0x51dfd1
lea eax, [ecx + 0xc]
mov dword [edi], eax
add dword [esi], ecx
cmp dword [0x606e58], 0xffffffff
jne 0x51dfe5
mov eax, dword [ebp - 0xd4]
mov dword [0x606e58], eax
test ebx, ebx
jg 0x51df80
mov edx, dword [0x607238]
mov edi, dword [0x606c28]
cmp edi, dword [0x606c24]
je 0x51e102
lea eax, [edi + 1]
mov dword [0x606c28], eax
mov ecx, dword [esi + 0x30]
imul eax, edi, 0x4c
add eax, dword [0x6071f0]
mov dword [ebp - 0xd4], eax
mov edi, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0xd0], eax
test ecx, ecx
je 0x51e040
test byte [ecx + 0x14], 1
je 0x51e040
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x51e040
test byte [ecx + 0x14], 1
jne 0x51e030
nop dword [eax]
mov edx, dword [esi]
cmp edi, edx
jb 0x51e04a
cmp edi, dword [ecx]
jb 0x51e077
mov dword [ecx + 0x24], edx
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x51e06d
test byte [ecx + 0x14], 1
je 0x51e06d
nop word [eax + eax]
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x51e06d
test byte [ecx + 0x14], 1
jne 0x51e060
mov dword [esi + 0x30], ecx
mov eax, dword [ecx + 0x10]
mov dword [esi], eax
jmp 0x51e040
mov ecx, dword [ebp - 0xd4]
mov eax, dword [ecx]
sub eax, edx
mov dword [ecx + 0x40], edx
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0xd0]
add eax, edi
mov dword [esi], eax
mov dword [esi + 4], eax
mov edx, dword [0x607238]
cmp edi, dword [edx + 0x10]
jb 0x51e0eb
cmp edi, dword [edx + 8]
jae 0x51e0eb
cmp edi, dword [0x60023c]
jb 0x51e0eb
xor ecx, ecx
mov eax, 0x6001b4
cmp edi, dword [eax]
jae 0x51e0cb
add eax, 0x88
inc ecx
cmp eax, 0x60023c
jl 0x51e0b3
mov ecx, 1
jmp 0x51e0d0
cmp ecx, 2
je 0x51e0eb
mov eax, dword [0x6083c0]
test eax, eax
je 0x51e0f0
imul eax, ecx, 0x88
mov ecx, dword [ebp - 0xd0]
add dword [eax + 0x600290], ecx
mov eax, dword [0x6083c0]
mov edi, dword [0x606c28]
cmp edi, dword [0x606c24]
jne 0x51df00
mov ebx, dword [0x6083bc]
test ebx, ebx
js 0x51e1a3
imul edi, ebx, 0x88
add edi, 0x600200
nop dword [eax]
cmp ebx, 2
jae 0x51e15a
mov ecx, dword [esi + 0x30]
cmp ecx, edx
je 0x51e154
mov eax, dword [esi]
mov esi, 0x600210
mov dword [ecx + 0x24], eax
mov edx, dword [0x607238]
mov eax, dword [edx + 0x10]
mov dword [0x600210], eax
mov dword [0x600214], eax
mov dword [0x600244], eax
mov dword [0x600240], edx
mov dword [ebp - 0xa4], esi
cmp dword [edi - 4], 0
jne 0x51e192
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push 0xc
push esi
call fcn.00509910
mov dword [edi - 4], eax
mov dword [edi], 0xc
mov ecx, dword [esi + 4]
sub ecx, dword [esi]
cmp ecx, 0xc
jae 0x51e18c
lea eax, [ecx + 0xc]
mov dword [edi], eax
add dword [esi], ecx
mov edx, dword [0x607238]
sub edi, 0x88
sub ebx, 1
jns 0x51e120
mov dword [ebp - 0xa8], esi
mov eax, dword [esi]
push 0x5cdcf4
mov dword [edx + 0x24], eax
call fcn.00511a80
cmp dword [0x6083bc], 1
jne 0x51e23a
mov ecx, dword [0x6002f0]
mov edi, dword [0x6002f4]
sub ecx, dword [ebp - 0x13c]
sub edi, dword [ebp - 0xe8]
mov eax, dword [0x6002ec]
sub eax, dword [ebp - 0x138]
mov ebx, dword [0x600304]
sub ebx, dword [ebp - 0x134]
mov dword [ebp - 0xd4], eax
lea eax, [edi + ecx]
test eax, eax
je 0x51e202
mov byte [0x606c0f], 1
cmp dword [0x6083d0], 0
mov eax, 0x607360
mov edx, 0x608188
cmove edx, eax
mov eax, dword [ebp - 0xd4]
mov dword [edx], eax
mov eax, dword [0x600314]
mov dword [edx + 8], ecx
mov ecx, dword [0x607398]
sub eax, ecx
mov dword [edx + 4], ebx
mov dword [edx + 0xc], edi
mov dword [edx + 0x10], ecx
mov dword [edx + 0x14], eax
mov edi, dword [0x607238]
imul ebx, dword [ebp - 0xb0], 0x88
mov eax, dword [esi]
mov ecx, dword [edi + 0x10]
cmp eax, ecx
jb 0x51e266
cmp eax, dword [edi + 8]
jae 0x51e266
mov edx, dword [edi]
cmp eax, edx
ja 0x51e262
sub edx, eax
jmp 0x51e26a
xor edx, edx
jmp 0x51e26a
mov edx, dword [edi]
sub edx, ecx
mov ecx, dword [ebx + 0x6001b0]
test ecx, ecx
je 0x51e28d
test byte [ecx + 0x14], 1
je 0x51e28d
nop word [eax + eax]
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x51e28d
test byte [ecx + 0x14], 1
jne 0x51e280
cmp ecx, edi
je 0x51e2b6
mov eax, dword [ecx]
sub eax, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x18]
add edx, eax
test ecx, ecx
je 0x51e2b2
test byte [ecx + 0x14], 1
je 0x51e2b2
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x51e2b2
test byte [ecx + 0x14], 1
jne 0x51e2a5
cmp ecx, edi
jne 0x51e291
mov ecx, dword [0x606c28]
xor edi, edi
xor ebx, ebx
xor eax, eax
cmp ecx, 2
jb 0x51e310
mov eax, dword [0x6071f0]
add ecx, 0xfffffffe
shr ecx, 1
add eax, 0x50
inc ecx
lea esi, [ecx + ecx]
mov dword [ebp - 0xd4], esi
mov esi, dword [ebp - 0xa8]
nop dword [eax]
nop dword [eax + eax]
add edi, dword [eax - 0x4c]
lea eax, [eax + 0x98]
add ebx, dword [eax - 0x98]
sub ecx, 1
jne 0x51e2f0
mov eax, dword [ebp - 0xd4]
mov ecx, dword [0x606c28]
cmp eax, ecx
jae 0x51e321
mov ecx, dword [0x6071f0]
imul eax, eax, 0x4c
add edx, dword [eax + ecx + 4]
lea eax, [ebp - 0xb4]
mov dword [ebp - 0xb4], 0
push eax
lea eax, [edi + ebx]
mov dword [0x606e64], 0
mov edi, dword [ebp - 0xb0]
add eax, edx
push eax
push edi
call fcn.00511560
mov ebx, eax
mov dword [ebp - 0xbc], ebx
cmp edi, 2
jne 0x51e3b2
cmp dword [0x6083c8], 0
je 0x51e38b
cmp dword [0x6083d0], 0
mov eax, 0x6081b0
mov ecx, 0x607388
mov ebx, 1
cmove eax, ecx
mov dword [ebp - 0xbc], ebx
mov dword [eax], 0x80000008
jmp 0x51e39b
push 3
push 0
call fcn.004fab20
push 3
call fcn.00523920
push 4
push 0
call fcn.004fab20
push 4
call fcn.00523920
call fcn.0051fc90
jmp 0x51e3bc
mov dword [0x6083c8], 0
cmp byte [0x606c0f], 0
je 0x51e402
cmp byte [0x606ca5], 0
je 0x51e402
mov eax, dword [0x6093f4]
test eax, eax
jne 0x51e3f6
mov eax, dword [0x6093f8]
cmp eax, 1
je 0x51e3f6
mov esi, dword [ebp - 0xa4]
mov byte [0x606ca6], 1
mov dword [ebp - 0xa8], esi
jmp 0x51e460
mov esi, dword [ebp - 0xa4]
mov dword [ebp - 0xa8], esi
mov edx, dword [0x606e5c]
cmp edx, dword [0x606e58]
sbb eax, eax
inc eax
mov dword [0x6083d4], eax
cmp edx, dword [0x606e58]
jb 0x51e446
mov eax, dword [0x6083d0]
mov edx, 0x60738c
mov ecx, dword [0x60738c]
test eax, eax
cmovne ecx, dword [0x6081b4]
or ecx, 2
test eax, eax
mov eax, 0x6081b4
cmove eax, edx
mov dword [eax], ecx
test ebx, ebx
je 0x51e460
cmp edi, 2
jne 0x51e460
inc dword [0x6084e4]
xorps xmm0, xmm0
movlpd qword [0x6071d0], xmm0
cmp byte [0x606f15], 0
je 0x51e4fa
call fcn.004ffe30
mov ecx, eax
call fcn.00527c90
movaps xmm1, xmm0
xorps xmm0, xmm0
mulsd xmm1, qword [0x608eb8]
movlpd qword [ebp - 0xd8], xmm0
movsd xmm0, qword [0x5cb950]
comisd xmm1, xmm0
jb 0x51e4be
subsd xmm1, xmm0
comisd xmm0, xmm1
jbe 0x51e4be
mov edi, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xd4]
add edi, 0
adc ebx, 0x80000000
jmp 0x51e4ca
mov ebx, dword [ebp - 0xd4]
mov edi, dword [ebp - 0xd8]
movaps xmm0, xmm1
call fcn.00527b90
mov ecx, dword [0x608e50]
add eax, edi
adc edx, ebx
mov dword [ecx + 0x30], eax
mov dword [ecx + 0x34], edx
mov edx, dword [0x608e50]
mov ecx, dword [edx + 0x30]
sub ecx, dword [edx + 0x28]
mov eax, dword [edx + 0x34]
sbb eax, dword [edx + 0x2c]
mov dword [edx + 0x28], ecx
mov dword [edx + 0x2c], eax
mov ebx, dword [ebp - 0xb0]
mov dword [0x606fe8], 0
cmp ebx, 2
jne 0x51e56e
cmp dword [0x6083c8], 0
je 0x51e549
mov edi, dword [ebp - 0xbc]
test edi, edi
je 0x51e537
call fcn.0051c970
test eax, eax
je 0x51e537
mov dword [0x606fe8], 1
jmp 0x51e574
push 3
push 0
call fcn.004fab20
push 3
call fcn.00523920
jmp 0x51e574
mov eax, dword [0x60722c]
test eax, eax
je 0x51e56e
sub dword [0x60015c], 1
jne 0x51e56e
push eax
call fcn.005278a8
add esp, 4
mov dword [0x60722c], 0
mov edi, dword [ebp - 0xbc]
cmp byte [0x606ca6], 0
jne 0x51e5d5
cmp byte [0x606f14], 0
je 0x51e5d5
cmp byte [0x606ca5], 0
je 0x51e5d5
cmp dword [0x6083bc], 1
jne 0x51e5fe
mov ecx, dword [0x6083b8]
mov eax, 0xcccccccd
mul ecx
shr edx, 2
lea eax, [edx + edx*4]
sub ecx, eax
jne 0x51e5c9
mov eax, dword [0x6093f4]
test eax, eax
jne 0x51e5c9
mov eax, dword [0x6093f8]
cmp eax, 1
je 0x51e5c9
mov byte [0x606ca6], 1
mov esi, dword [ebp - 0xa4]
mov dword [ebp - 0xa8], esi
cmp dword [0x6083bc], 1
jne 0x51e5fe
cmp byte [0x606ca5], 0
je 0x51e5f1
mov dword [ebp - 0xb4], 0
cmp byte [0x606ca6], 0
jne 0x51ed60
test edi, edi
je 0x51ed60
cmp dword [ebp - 0xb4], 0
je 0x51e669
call fcn.005232b0
mov edi, eax
test edi, edi
je 0x51e630
push edi
push esi
push ebx
call fcn.00513280
mov esi, eax
mov dword [ebp - 0xa8], esi
mov dword [ebp - 0xa4], esi
cmp dword [0x607238], edi
je 0x51e669
cmp dword [0x60852c], 0
jne 0x51e65f
cmp ebx, 2
je 0x51e65f
mov eax, dword [0x6083f4]
cmp eax, 2
je 0x51e65f
cmp eax, 3
je 0x51e65f
mov dword [0x60852c], 1
mov dword [ebp - 0xb4], 0
mov ecx, dword [ebp - 0xe4]
mov eax, dword [ecx]
mov dword [ecx + 4], eax
cmp ebx, 2
jge 0x51e8f3
mov ebx, dword [ebp - 0xc4]
mov eax, dword [ebx + 0x3c]
cmp eax, 1
je 0x51e6ef
xor edi, edi
test eax, eax
je 0x51e6ef
test edi, edi
jne 0x51e69d
mov edx, dword [ebx + 0x40]
lea eax, [ebx + 0x48]
jmp 0x51e6af
mov eax, dword [ebx + 0x4c]
lea ecx, [edi + edi*2]
shl ecx, 2
mov edx, dword [eax + ecx - 0xc]
add eax, 0xfffffffc
add eax, ecx
mov eax, dword [eax]
test edx, edx
je 0x51e6ce
test eax, eax
je 0x51e6ce
cmp dword [edx - 4], 1
je 0x51e6c7
mov dword [edx - 4], 1
dec eax
mov edx, dword [edx + 8]
test edx, edx
jne 0x51e6b5
test edi, edi
jne 0x51e6d7
lea eax, [ebx + 0x48]
jmp 0x51e6e3
mov eax, dword [ebx + 0x4c]
lea ecx, [edi + edi*2]
lea eax, [eax + ecx*4]
add eax, 0xfffffffc
inc edi
mov dword [eax], 0
cmp edi, dword [ebx + 0x3c]
jb 0x51e691
push ebx
call fcn.00514500
cmp byte [ebp - 0xb5], 0
je 0x51e8ed
xor ebx, ebx
mov edi, 0x6081d0
xor edx, edx
nop dword [eax + eax]
mov eax, dword [edi - 4]
mov dword [ebp - 0xd4], eax
test eax, eax
je 0x51e74d
cmp dx, bx
je 0x51e748
mov ecx, dword [edi]
mov esi, dword [ebp - 0xd4]
movzx eax, bx
lea eax, [eax + eax*2]
mov word [eax*4 + 0x6081c8], dx
mov dword [eax*4 + 0x6081cc], esi
mov dword [eax*4 + 0x6081d0], ecx
jmp 0x51e74c
mov word [edi - 8], dx
inc ebx
inc edx
add edi, 0xc
cmp dx, 0xc
jb 0x51e710
mov esi, dword [ebp - 0xa8]
test bx, bx
je 0x51e7ac
mov eax, dword [0x609490]
cmp eax, 5
jl 0x51e792
mov eax, dword [0x609498]
test al, 1
je 0x51e792
call fcn.004fac30
mov ecx, dword [ebp - 0xc0]
push 0x6081c8
push 0xc
mov edx, dword [eax]
push ebx
push ecx
push 1
mov ecx, eax
call dword [edx + 0x4c]
push 0x90
push 0
push 0x6081c8
call fcn.00528f70
mov esi, dword [ebp - 0xa4]
add esp, 0xc
mov edx, dword [ebp - 0xc4]
xor ebx, ebx
mov dword [ebp - 0xac], ebx
mov eax, dword [edx + 0x68]
shr eax, 2
mov dword [ebp - 0xd4], eax
mov eax, dword [edx + 0x3c]
sub eax, 1
mov dword [ebp - 0xc0], eax
js 0x51e8af
nop dword [eax + eax]
xor edi, edi
mov dword [ebp - 0xd0], edi
test eax, eax
jne 0x51e7f1
lea ecx, [edx + 0x40]
jmp 0x51e803
lea ecx, [eax + eax*2]
mov eax, dword [edx + 0x4c]
lea ecx, [ecx - 3]
lea ecx, [eax + ecx*4]
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ecx]
test ecx, ecx
je 0x51e8a0
nop dword [eax]
mov eax, dword [ecx]
and eax, 0xfffffffc
mov edx, dword [eax]
test edx, edx
jns 0x51e824
movzx edx, dx
imul edx, dword [ecx + 4]
jmp 0x51e826
xor edx, edx
mov eax, dword [eax + 4]
add edx, 3
add eax, edx
inc edi
mov edx, dword [ebp - 0xd0]
and eax, 0xfffffffc
add ebx, eax
add edx, eax
mov dword [ebp - 0xd0], edx
cmp ebx, dword [ebp - 0xd4]
ja 0x51e922
cmp edi, 0x7d0
ja 0x51e922
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x51e810
test edi, edi
je 0x51e894
mov ecx, dword [ebp - 0xac]
movzx eax, cx
inc ecx
mov dword [ebp - 0xac], ecx
mov ecx, dword [ebp - 0xc0]
lea eax, [eax + eax*2]
mov word [eax*4 + 0x6081c8], cx
mov dword [eax*4 + 0x6081cc], edi
mov dword [eax*4 + 0x6081d0], edx
mov edx, dword [ebp - 0xc4]
mov eax, dword [ebp - 0xc0]
sub eax, 1
mov dword [ebp - 0xc0], eax
jns 0x51e7e0
mov eax, dword [ebp - 0xac]
movzx edi, ax
test di, di
je 0x51e8ed
mov eax, dword [0x609490]
cmp eax, 5
jl 0x51e8e7
mov eax, dword [0x609498]
test al, 1
je 0x51e8e7
call fcn.004fac30
push 0x6081c8
push 0xc
push edi
mov edx, dword [eax]
mov ecx, eax
push ebx
push 0
call dword [edx + 0x4c]
mov esi, dword [ebp - 0xa4]
mov ebx, dword [ebp - 0xb0]
push 1
push 0
call fcn.004faad0
mov edi, dword [ebp - 0x108]
push edi
push ebx
call fcn.00520aa0
cmp dword [0x6083d4], 0
jne 0x51e956
cmp dword [0x6083c0], 0
je 0x51e956
mov eax, 1
jmp 0x51e958
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0xc0]
movzx eax, ax
lea eax, [eax + eax*2]
mov word [eax*4 + 0x6081c8], cx
mov dword [eax*4 + 0x6081cc], edi
mov dword [eax*4 + 0x6081d0], edx
mov eax, dword [ebp - 0xac]
inc eax
jmp 0x51e8b5
xor eax, eax
push eax
push edi
push ebx
call fcn.00510380
push esi
push ebx
call fcn.00514320
cmp ebx, 1
jl 0x51e995
push 1
call fcn.0051fbd0
cmp dword [ebp - 0xb4], 0
je 0x51e995
mov eax, dword [0x607238]
mov dword [0x6001b0], eax
mov dword [0x6001b8], eax
mov dword [0x600238], eax
mov dword [0x600240], eax
cmp byte [0x606f15], 0
je 0x51ea23
call fcn.004ffe30
mov ebx, dword [0x608e50]
mov ecx, eax
call fcn.00527c90
movaps xmm1, xmm0
xorps xmm0, xmm0
mulsd xmm1, qword [0x608eb8]
movlpd qword [ebp - 0x10c], xmm0
movsd xmm0, qword [0x5cb950]
comisd xmm1, xmm0
jb 0x51e9f9
subsd xmm1, xmm0
comisd xmm0, xmm1
jbe 0x51e9f9
mov esi, dword [ebp - 0x10c]
mov edi, dword [ebp - 0x108]
add esi, 0
adc edi, 0x80000000
jmp 0x51ea05
mov edi, dword [ebp - 0x108]
mov esi, dword [ebp - 0x10c]
movaps xmm0, xmm1
call fcn.00527b90
add eax, esi
adc edx, edi
sub eax, dword [ebx + 0x38]
mov dword [ebx + 0x38], eax
sbb edx, dword [ebx + 0x3c]
mov dword [ebx + 0x3c], edx
mov ebx, dword [ebp - 0xb0]
cmp dword [0x6083d4], 0
jne 0x51ea3c
cmp dword [0x6083c0], 0
je 0x51ea3c
mov eax, 1
jmp 0x51ea3e
xor eax, eax
mov ecx, dword [0x60723c]
push eax
push ebx
call fcn.005088c0
cmp dword [0x6083c0], 0
mov dword [ebp - 0x17c], 0
mov dword [ebp - 0x170], 0
mov dword [ebp - 0x164], 0
mov dword [ebp - 0x160], 3
mov dword [ebp - 0x178], 0
mov dword [ebp - 0x174], 1
mov word [ebp - 0x16c], 0
je 0x51eab3
cmp dword [0x6083d4], 0
jne 0x51eabc
lea eax, [ebp - 0x17c]
push eax
push 2
push ebx
call fcn.005270c0
jmp 0x51eacb
cmp dword [0x6083d4], 0
je 0x51eacb
lea eax, [ebp - 0x17c]
push eax
push 2
push ebx
call fcn.00527030
lea eax, [ebx + 1]
xor edx, edx
cmp eax, 2
mov dword [0x606c28], edx
mov esi, 2
cmovl esi, eax
imul eax, esi, 0x88
mov dword [ebp - 0xb4], esi
mov esi, dword [eax + 0x60012c]
mov dword [ebp - 0xac], esi
lea ebx, [eax + 0x600188]
mov eax, dword [0x607238]
mov dword [ebp - 0xcc], ebx
mov eax, dword [eax]
mov dword [ebp - 0xd4], eax
cmp dword [0x606c24], edx
je 0x51efc0
nop
mov eax, edx
lea edx, [eax + 1]
imul eax, eax, 0x4c
mov dword [0x606c28], edx
add eax, dword [0x6071f0]
mov ecx, dword [eax + 4]
mov edi, dword [eax]
sub edi, ecx
mov dword [ebp - 0xe4], ecx
test ecx, ecx
je 0x51ed4f
mov eax, dword [0x6061b0]
mov dword [edi], eax
lea eax, [ecx - 0xc]
mov dword [edi + 4], eax
call fcn.00500bb0
and eax, 1
xor edx, edx
or eax, edx
je 0x51eb78
push dword [edi + 4]
lea eax, [edi + 8]
push 0xcc
push eax
call fcn.00528f70
add esp, 0xc
mov edx, dword [ebp - 0xe4]
mov eax, edi
sub eax, dword [0x607254]
mov ecx, eax
add eax, edx
shr ecx, 0xb
shr eax, 0xb
mov dword [ebp - 0x108], ecx
mov dword [ebp - 0x124], eax
cmp eax, ecx
je 0x51ec67
mov ebx, dword [ebp - 0x108]
mov eax, ecx
shl eax, 0xb
mov ecx, edi
sub ecx, eax
sub ecx, dword [0x607254]
lea eax, [ebx + ebx]
mov dword [ebp - 0x104], eax
cmp ecx, 0xffff8001
jge 0x51ec13
mov dword [ebp - 0x104], eax
mov dword [ebp - 0xd0], 0xffff8001
mov eax, dword [0x607260]
mov ecx, dword [ebp - 0x104]
mov edx, dword [ebp - 0xd0]
mov word [eax + ecx], dx
mov edx, dword [ebp - 0xe4]
inc ebx
cmp ebx, dword [ebp - 0x124]
jae 0x51ec61
or edx, 0xffffffff
lea esi, [ebx + ebx]
cmp edx, 0xffff8001
jge 0x51ec3a
mov ecx, 0xffff8001
jmp 0x51ec42
movzx eax, cx
mov dword [ebp - 0xd0], eax
test ecx, ecx
js 0x51ebda
mov esi, dword [ebp - 0x104]
lea ecx, [eax + 1]
mov eax, dword [0x607260]
mov word [eax + esi], cx
mov esi, dword [ebp - 0xac]
jmp 0x51ebf5
movzx ecx, dx
test edx, edx
js 0x51ec42
inc ecx
mov eax, dword [0x607260]
inc ebx
dec edx
mov word [esi + eax], cx
cmp ebx, dword [ebp - 0x124]
jb 0x51ec01
mov esi, dword [ebp - 0xac]
mov edx, dword [ebp - 0xe4]
mov ebx, dword [ebp - 0xcc]
mov eax, dword [0x607238]
cmp dword [eax + 0x10], edi
ja 0x51ece8
cmp dword [eax + 8], edi
jbe 0x51ece8
cmp esi, edi
ja 0x51ecfd
mov ecx, dword [ebp - 0xb4]
imul eax, ecx, 0x88
mov dword [ebp - 0xb4], ecx
mov ecx, dword [ebp - 0xd4]
mov dword [ebp - 0xcc], ebx
mov dword [ebp - 0xac], esi
add eax, 0x600188
cmp ecx, edi
jbe 0x51ecfd
nop
mov esi, dword [ebp - 0xb4]
sub eax, 0x88
dec esi
mov ebx, eax
mov dword [ebp - 0xb4], esi
mov dword [ebp - 0xcc], ebx
cmp esi, 1
jb 0x51ecde
mov esi, dword [eax - 0x5c]
mov dword [ebp - 0xac], esi
cmp esi, edi
jbe 0x51ecb0
jmp 0x51ecfd
mov esi, ecx
mov dword [ebp - 0xac], esi
jmp 0x51ecfd
mov ebx, 0x600298
mov dword [ebp - 0xb4], 2
mov dword [ebp - 0xcc], ebx
cmp dword [0x6083d0], 0
jne 0x51ed15
cmp ebx, 0x600188
je 0x51ed15
mov ecx, 1
jmp 0x51ed17
xor ecx, ecx
xor eax, eax
cmp dword [ebx + 0x84], 2
sete al
push eax
push ecx
push edx
push edi
call fcn.0051a370
mov eax, dword [ebp - 0xe4]
cmp eax, 0x18
jb 0x51ed46
add dword [ebx + 0x68], eax
lea ecx, [ebx + 0x38]
push eax
push edi
call fcn.00523cc0
jmp 0x51ed49
add dword [ebx + 0x6c], eax
mov edx, dword [0x606c28]
cmp edx, dword [0x606c24]
jne 0x51eb20
jmp 0x51efc0
mov dword [0x6083c0], 1
mov dword [0x6083c4], 0
mov dword [ebp - 0x17c], 0
mov dword [ebp - 0x170], 0
mov dword [ebp - 0x164], 0
mov dword [ebp - 0x160], 3
mov dword [ebp - 0x178], 0
mov dword [ebp - 0x174], 1
mov word [ebp - 0x16c], 0
cmp ebx, 2
jge 0x51eec9
mov esi, dword [ebp - 0xc4]
xor edi, edi
mov ebx, dword [esi + 0x3c]
test ebx, ebx
je 0x51ee5e
lea ecx, [edi + edi*2]
shl ecx, 2
test edi, edi
jne 0x51ede7
mov edx, dword [esi + 0x48]
add esi, 0x40
jmp 0x51edf3
mov eax, dword [esi + 0x4c]
mov edx, dword [eax + ecx - 4]
lea esi, [eax - 0xc]
add esi, ecx
movq xmm0, qword [ebp + ecx - 0xa0]
mov eax, dword [ebp + ecx - 0x98]
movq qword [esi], xmm0
mov dword [esi + 8], eax
cmp ebx, 1
je 0x51ee4e
mov eax, dword [ebp - 0xc4]
test edi, edi
jne 0x51ee1e
add eax, 0x40
jmp 0x51ee26
mov eax, dword [eax + 0x4c]
add eax, 0xfffffff4
add eax, ecx
mov eax, dword [eax]
test eax, eax
je 0x51ee4e
nop dword [eax]
test edx, edx
je 0x51ee4e
mov esi, dword [eax - 4]
cmp esi, 1
je 0x51ee47
dec edx
mov dword [eax + 8], esi
mov dword [eax - 4], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x51ee30
mov esi, dword [ebp - 0xc4]
inc edi
cmp edi, dword [esi + 0x3c]
jb 0x51edd5
mov eax, dword [ebp - 0x150]
mov ebx, dword [ebp - 0xb0]
mov dword [esi + 0x68], eax
mov eax, dword [ebp - 0x134]
mov dword [esi + 0x6c], eax
mov eax, dword [ebp - 0x138]
mov dword [esi + 0x54], eax
mov eax, dword [ebp - 0x13c]
mov dword [esi + 0x58], eax
mov eax, dword [ebp - 0xe8]
mov dword [esi + 0x5c], eax
lea eax, [ebx + ebx*2]
shl eax, 5
push esi
mov eax, dword [eax + 0x607004]
add dword [esi + 0x60], eax
mov eax, dword [ebp - 0x154]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x158]
mov dword [esi], eax
mov eax, dword [ebp - 0x15c]
mov dword [esi + 0x34], eax
mov eax, dword [ebp - 0xfc]
mov dword [esi + 0x30], eax
call fcn.00514500
push 0
push 0
call fcn.004faad0
push ebx
call fcn.00519e80
call fcn.00520080
test eax, eax
je 0x51eee7
sub dword [0x600304], eax
cmp byte [0x606f15], 0
je 0x51ef75
call fcn.004ffe30
mov ebx, dword [0x608e50]
mov ecx, eax
call fcn.00527c90
movaps xmm1, xmm0
xorps xmm0, xmm0
mulsd xmm1, qword [0x608eb8]
movlpd qword [ebp - 0x10c], xmm0
movsd xmm0, qword [0x5cb950]
comisd xmm1, xmm0
jb 0x51ef4b
subsd xmm1, xmm0
comisd xmm0, xmm1
jbe 0x51ef4b
mov esi, dword [ebp - 0x10c]
mov edi, dword [ebp - 0x108]
add esi, 0
adc edi, 0x80000000
jmp 0x51ef57
mov edi, dword [ebp - 0x108]
mov esi, dword [ebp - 0x10c]
movaps xmm0, xmm1
call fcn.00527b90
add eax, esi
adc edx, edi
sub eax, dword [ebx + 0x30]
mov dword [ebx + 0x30], eax
sbb edx, dword [ebx + 0x34]
mov dword [ebx + 0x34], edx
mov ebx, dword [ebp - 0xb0]
lea eax, [ebp - 0x17c]
push eax
push 2
push ebx
call fcn.005270c0
cmp ebx, 1
jl 0x51ef90
push 0
call fcn.0051fbd0
mov ecx, dword [0x60723c]
lea edx, [ebx + 1]
cmp edx, 2
mov esi, 2
cmovg edx, esi
test edx, edx
jle 0x51efc0
mov eax, 4
sub eax, edx
lea esi, [ecx + eax*4]
mov eax, dword [esi + 4]
lea esi, [esi + 4]
dec edx
mov dword [esi - 4], eax
test edx, edx
jg 0x51efb2
cmp dword [0x6083d4], 0
jne 0x51efec
cmp dword [0x6083c0], 0
je 0x51efec
mov eax, dword [0x6001b4]
shr eax, 7
push eax
mov eax, dword [0x60023c]
add eax, 0x7f
shr eax, 7
push eax
call fcn.0050fb80
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.005278ad
mov esp, ebp
pop ebp
ret 4