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

Disassembly:
sub esp, 0x1a4
mov eax, dword [0x69cffc]
xor eax, esp
mov dword [esp + 0x1a0], eax
mov ecx, dword [esp + 0x1a8]
mov eax, dword [esp + 0x1b0]
mov edx, dword [esp + 0x1b4]
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x1bc]
mov ebp, ecx
mov dword [esp + 0xc0], ecx
mov esi, eax
mov ecx, dword [esp + 0x1d8]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x1cc]
push eax
mov ebx, dword [ecx + 8]
push dword [esp + 0x1cc]
mov dword [esp + 0x58], ecx
mov ecx, dword [ecx + 0xc]
push ecx
push ebx
push edx
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x48], edi
mov dword [esp + 0x44], esi
mov dword [esp + 0x4c], edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x3c], ebx
mov dword [esp + 0xac], ecx
call fcn.005a71e0
mov ecx, dword [esp + 0x64]
add esp, 0x14
mov dword [esp + 0x94], eax
neg eax
sbb eax, eax
and eax, 4
mov dword [ecx], 0
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x98]
cmp ebx, 4
jl 0x5a762c
cmp eax, 4
jge 0x5a7637
mov dword [esp + 0x1d4], 0
push eax
push ebx
push ecx
call fcn.005a6c90
add esp, 0xc
test eax, eax
je 0x5a938c
cmp dword [esp + 0x1d4], 0
je 0x5a77e8
mov eax, dword [0x69d084]
cmp eax, dword [fcn.005b0b30]
je 0x5a778a
cmp dword [0x6a8c70], 0
jne 0x5a7780
xor ecx, ecx
mov dword [esp + 0x18], ecx
nop dword [eax]
movsd xmm1, qword [0x65e0a8]
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x65e080]
comisd xmm1, xmm0
jb 0x5a76a8
divsd xmm0, qword [0x65e0e0]
jmp 0x5a76c5
addsd xmm0, qword [0x65e0b0]
movsd xmm1, qword [0x65e0d8]
mulsd xmm0, qword [0x65e0c0]
call fcn.00602370
mulsd xmm0, qword [0x65e0f8]
addsd xmm0, qword [0x6740f8]
call fcn.00614b40
mov ecx, dword [esp + 0x18]
mov dword [ecx*4 + 0x6a7c70], eax
inc ecx
mov dword [esp + 0x18], ecx
cmp ecx, 0x3ff
jle 0x5a7680
xor ecx, ecx
mov dword [esp + 0x18], ecx
nop dword [eax + eax]
movsd xmm1, qword [0x65e090]
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x65e098]
comisd xmm1, xmm0
jb 0x5a7728
mulsd xmm0, qword [0x65e0e0]
jmp 0x5a7745
movsd xmm1, qword [0x65e0b8]
call fcn.00602370
mulsd xmm0, qword [0x65e0c8]
subsd xmm0, qword [0x65e0b0]
mulsd xmm0, qword [0x65e0e8]
call fcn.00614b40
mov ecx, dword [esp + 0x18]
add eax, 0x2000
mov dword [ecx*4 + 0x6a7be8], eax
inc ecx
mov dword [esp + 0x18], ecx
cmp ecx, 0x20
jle 0x5a7700
mov eax, dword [0x6a7c68]
mov dword [0x6a7c6c], eax
mov dword [0x6a8c70], 1
mov eax, dword [fcn.005b0b30]
mov dword [0x69d084], eax
mov eax, dword [esp + 0x50]
push eax
push dword [esp + 0x24]
push dword [esp + 0x1d0]
push esi
push edi
push ebp
call fcn.005a95a0
add esp, 0x18
test eax, eax
je 0x5a938c
cmp dword [esp + 0x94], 0
je 0x5a9385
mov eax, dword [esp + 0x50]
push dword [eax + 0x28]
push dword [eax + 0x24]
push dword [esp + 0xa0]
push ebx
push dword [esp + 0x30]
push dword [esp + 0x4c]
call dword [0x6ad31c]
add esp, 0x18
mov eax, 1
jmp 0x5a938e
xor ecx, ecx
lea eax, [ebx + 1]
sar eax, 1
cmp dword [esp + 0x1c8], 3
mov dword [esp + 0x8c], eax
sete cl
shl eax, 2
cdq
push 2
push edx
push eax
mov dword [esp + 0x24], ecx
call fcn.005a6680
mov ecx, dword [esp + 0x5c]
mov esi, eax
movss xmm0, dword [esp + 0x1dc]
xor ebx, ebx
add esp, 0xc
mov dword [esp + 0x3c], esi
comiss xmm0, dword [0x6740b8]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x54], eax
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x78], eax
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x64], eax
mov eax, dword [ecx + 0x24]
mov dword [esp + 0x68], eax
mov dword [esp + 0x90], ebx
jbe 0x5a7882
push ecx
lea eax, [esp + 0xcc]
movss dword [esp], xmm0
push eax
call fcn.005af690
lea ebx, [esp + 0xd0]
mov dword [esp + 0x20], 0
add esp, 8
mov dword [esp + 0x90], ebx
call fcn.005aef00
mov eax, dword [0x69d080]
cmp eax, dword [fcn.005b0b30]
je 0x5a7956
cmp dword [0x6a79e4], 0
jne 0x5a794c
xor esi, esi
nop word [eax + eax]
movsd xmm1, qword [0x674118]
movd xmm0, esi
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x65e088]
call fcn.00602370
mulsd xmm0, qword [0x65e0f0]
addsd xmm0, qword [0x6740f8]
cvttsd2si eax, xmm0
mov word [esi*2 + 0x6a79e8], ax
inc esi
cmp esi, 0xff
jle 0x5a78b0
xor esi, esi
nop dword [eax]
nop dword [eax + eax]
movsd xmm1, qword [0x65e0d0]
movd xmm0, esi
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x65e0a0]
call fcn.00602370
mulsd xmm0, qword [0x674160]
addsd xmm0, qword [0x6740f8]
cvttsd2si eax, xmm0
mov dword [esi*4 + 0x6a7960], eax
inc esi
cmp esi, 0x20
jle 0x5a7900
mov esi, dword [esp + 0x3c]
mov dword [0x6a79e4], 1
mov eax, dword [fcn.005b0b30]
mov dword [0x69d080], eax
test esi, esi
je 0x5a938c
mov eax, dword [esp + 0x98]
mov esi, 0x200
sar eax, 1
mov dword [esp + 0x48], eax
test eax, eax
jle 0x5a891b
mov ecx, dword [esp + 0x28]
mov eax, ecx
sar eax, 1
mov dword [esp + 0x6c], eax
mov eax, ecx
and eax, 1
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x20]
lea edx, [eax + eax]
mov dword [esp + 0x84], edx
mov edx, eax
neg edx
add edx, edx
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x3c]
sub edx, ebp
mov dword [esp + 0x80], edx
mov edx, 4
sub edx, eax
mov dword [esp + 0xbc], edx
mov edx, dword [esp + 0x30]
jmp 0x5a79d5
mov esi, 0x200
cmp dword [esp + 0x18], 0
je 0x5a7a4b
mov eax, dword [esp + 0xc0]
push ecx
push dword [esp + 0x58]
cmp eax, dword [esp + 0xcc]
jae 0x5a7a1d
push ebp
call dword [0x6ad340]
mov eax, dword [esp + 0x5c]
push dword [esp + 0x34]
mov eax, dword [eax + 0x1c]
add eax, dword [esp + 0x64]
push eax
mov eax, dword [esp + 0x34]
add eax, ebp
push eax
call dword [0x6ad340]
add esp, 0x18
jmp 0x5a7c64
push edx
call dword [0x6ad33c]
mov eax, dword [esp + 0x5c]
push dword [esp + 0x34]
mov eax, dword [eax + 0x1c]
add eax, dword [esp + 0x64]
push eax
mov eax, dword [esp + 0x34]
add eax, dword [esp + 0x44]
push eax
call dword [0x6ad33c]
add esp, 0x18
jmp 0x5a7c64
mov dword [esp + 0x14], 0
test ecx, ecx
jle 0x5a7c68
mov ecx, dword [esp + 0x58]
mov eax, edx
mov esi, dword [esp + 0x54]
sub eax, edi
sub ecx, edi
mov dword [esp + 0x40], eax
mov ebp, edi
mov dword [esp + 0x74], ecx
movzx eax, byte [eax + ebp]
movzx edx, byte [ebp]
movzx ecx, byte [ecx + ebp]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x10], ecx
test ebx, ebx
jne 0x5a7aaf
imul eax, eax, 0x1914
imul ecx, ecx, 0x41c7
add ecx, eax
imul eax, edx, 0x8123
add eax, 0x108000
add eax, ecx
shr eax, 0x10
jmp 0x5a7b22
mov edx, dword [ebx]
mov eax, dword [ebx + 4]
mov edi, dword [ebx + 0xe4]
mov ecx, dword [ebx + edx*4 + 8]
sub ecx, dword [ebx + eax*4 + 8]
lea esi, [ecx - 0x80000000]
cmovns esi, ecx
xor ecx, ecx
mov dword [ebx + edx*4 + 8], esi
inc dword [ebx]
mov eax, dword [ebx]
cmp eax, 0x37
cmove eax, ecx
inc dword [ebx + 4]
mov dword [ebx], eax
mov eax, dword [ebx + 4]
cmp eax, 0x37
cmove eax, ecx
lea ecx, [esi + esi]
sar ecx, 0x10
mov esi, dword [esp + 0x54]
mov dword [ebx + 4], eax
imul eax, dword [esp + 0x10], 0x41c7
imul ecx, edi
sar ecx, 8
add ecx, eax
imul eax, dword [esp + 0x2c], 0x1914
add ecx, eax
imul eax, dword [esp + 0x4c], 0x8123
add eax, 0x108000
add eax, ecx
sar eax, 0x10
mov ecx, dword [esp + 0x14]
add ebp, dword [esp + 0x1c8]
mov byte [ecx + esi], al
inc ecx
cmp ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x74]
jl 0x5a7a73
mov eax, dword [esp + 0x58]
mov ebp, dword [esp + 0x20]
mov edx, dword [esp + 0x34]
add ebp, eax
mov ecx, dword [esp + 0x30]
sub edx, eax
sub ecx, eax
mov dword [esp + 0x74], edx
mov eax, dword [esp + 0x50]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x14], 0
mov eax, dword [eax + 0x1c]
add eax, esi
mov dword [esp + 0x40], eax
nop dword [eax]
movzx eax, byte [ecx + ebp]
movzx edx, byte [edx + ebp]
movzx ecx, byte [ebp]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x10], ecx
test ebx, ebx
jne 0x5a7bbc
imul eax, eax, 0x1914
imul ecx, ecx, 0x41c7
add ecx, eax
imul eax, edx, 0x8123
add eax, 0x108000
add eax, ecx
shr eax, 0x10
jmp 0x5a7c2b
mov edx, dword [ebx]
mov eax, dword [ebx + 4]
mov edi, dword [ebx + 0xe4]
mov ecx, dword [ebx + edx*4 + 8]
sub ecx, dword [ebx + eax*4 + 8]
lea esi, [ecx - 0x80000000]
cmovns esi, ecx
xor ecx, ecx
mov dword [ebx + edx*4 + 8], esi
inc dword [ebx]
mov eax, dword [ebx]
cmp eax, 0x37
cmove eax, ecx
inc dword [ebx + 4]
mov dword [ebx], eax
mov eax, dword [ebx + 4]
cmp eax, 0x37
cmove eax, ecx
lea ecx, [esi + esi]
sar ecx, 0x10
mov dword [ebx + 4], eax
imul eax, dword [esp + 0x10], 0x41c7
imul ecx, edi
sar ecx, 8
add ecx, eax
imul eax, dword [esp + 0x2c], 0x1914
add ecx, eax
imul eax, dword [esp + 0x4c], 0x8123
add eax, 0x108000
add eax, ecx
sar eax, 0x10
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x40]
add ebp, dword [esp + 0x1c8]
mov byte [ecx + edx], al
inc ecx
cmp ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x9c]
jl 0x5a7b80
mov ebp, dword [esp + 0x58]
mov esi, 0x200
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
cmp dword [esp + 0x94], 0
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov eax, dword [eax + 0x1c]
lea edx, [edx + eax*2]
mov dword [esp + 0x54], edx
je 0x5a83d9
mov eax, dword [esp + 0x50]
push dword [eax + 0x28]
push dword [esp + 0x6c]
push 2
push ecx
push dword [esp + 0x30]
push dword [esp + 0x4c]
call dword [0x6ad31c]
mov ecx, dword [esp + 0x80]
add esp, 0x18
neg eax
sbb eax, eax
inc eax
and eax, dword [esp + 0x94]
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x28]
lea ecx, [ecx + eax*2]
mov dword [esp + 0x68], ecx
je 0x5a83d9
mov edi, dword [esp + 0x3c]
xor ebp, ebp
mov dword [esp + 0x14], edi
cmp dword [esp + 0x6c], ebp
jle 0x5a8178
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x30]
lea esi, [eax + 4]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x5c], esi
mov esi, dword [esp + 0x38]
lea edx, [ebx + ecx]
add esi, 4
mov dword [esp + 0x24], edx
add ebx, esi
mov esi, edi
sub esi, dword [esp + 0x38]
mov dword [esp + 0x70], esi
mov esi, eax
sub esi, dword [esp + 0x38]
mov dword [esp + 0xb8], esi
mov esi, ecx
sub esi, dword [esp + 0x38]
mov dword [esp + 0x74], esi
mov esi, 0xfffffffc
sub esi, dword [esp + 0x20]
mov dword [esp + 0xac], esi
mov esi, dword [esp + 0x38]
sub esi, eax
mov dword [esp + 0xa8], esi
mov esi, edi
sub esi, ecx
mov dword [esp + 0x44], esi
mov esi, eax
sub esi, ecx
mov dword [esp + 0xb4], esi
mov esi, edi
sub esi, eax
mov eax, ecx
sub eax, edi
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x10], eax
nop dword [eax]
mov edx, dword [esp + 0xa8]
movzx eax, byte [ebx - 4]
movzx ecx, byte [ebx]
mov dword [esp + 0xb0], ecx
movzx edi, byte [esi + edx]
mov edx, dword [esp + 0xac]
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa0], eax
movzx edx, byte [edx + ebx]
add edi, edx
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x24]
add edi, eax
add edi, ecx
cmp edi, 0x3fc
je 0x5a7fb2
test edi, edi
je 0x5a7fb2
mov eax, dword [esp + 0xb8]
mov esi, dword [edi*4 + 0x65d088]
movzx eax, byte [eax + ebx]
movzx edx, word [eax*2 + 0x6a79e8]
mov eax, dword [esp + 0x24]
imul edx, ecx
mov ecx, dword [esp + 0xb4]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 0x5c]
movzx eax, word [eax*2 + 0x6a79e8]
imul eax, dword [esp + 0xa0]
add edx, eax
movzx eax, byte [ecx - 4]
movzx eax, word [eax*2 + 0x6a79e8]
imul eax, dword [esp + 0x7c]
add edx, eax
movzx eax, byte [ecx]
mov ecx, 0x200
movzx eax, word [eax*2 + 0x6a79e8]
imul eax, dword [esp + 0xa4]
add edx, eax
imul edx, esi
shr edx, 0x11
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, dword [esp + 0x9c]
sar eax, 7
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x74]
movzx eax, byte [eax + ebx]
movzx edx, word [eax*2 + 0x6a79e8]
mov eax, dword [esp + 0x1c]
imul edx, dword [esp + 0xb0]
movzx eax, byte [ecx + eax]
mov ecx, dword [esp + 0x24]
movzx eax, word [eax*2 + 0x6a79e8]
imul eax, dword [esp + 0x7c]
add edx, eax
mov eax, dword [esp + 0xbc]
movzx eax, byte [ecx + eax]
movzx eax, word [eax*2 + 0x6a79e8]
imul eax, dword [esp + 0xa4]
add edx, eax
movzx eax, byte [ecx]
mov ecx, 0x200
movzx eax, word [eax*2 + 0x6a79e8]
imul eax, dword [esp + 0xa0]
add edx, eax
imul edx, esi
shr edx, 0x11
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, dword [esp + 0x40]
sar eax, 7
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x70]
movzx eax, byte [eax + ebx]
movzx edx, word [eax*2 + 0x6a79e8]
mov eax, dword [esp + 0x5c]
imul edx, dword [esp + 0xb0]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 0x44]
movzx eax, word [eax*2 + 0x6a79e8]
imul eax, dword [esp + 0xa4]
add edx, eax
mov eax, dword [esp + 0x24]
movzx eax, byte [eax + ecx]
movzx eax, word [eax*2 + 0x6a79e8]
mov ecx, 0x200
imul eax, dword [esp + 0xa0]
add edx, eax
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax]
movzx eax, word [eax*2 + 0x6a79e8]
imul eax, dword [esp + 0x7c]
add edx, eax
imul edx, esi
shr edx, 0x11
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul edx, eax
add edx, 0x40
jmp 0x5a8111
mov eax, dword [esp + 0xb4]
mov ecx, 0x200
movzx eax, byte [edx + eax]
movzx edx, word [eax*2 + 0x6a79e8]
mov eax, dword [esp + 0xb8]
movzx eax, byte [eax + ebx]
movzx eax, word [eax*2 + 0x6a79e8]
add edx, eax
movzx eax, byte [esi - 4]
movzx eax, word [eax*2 + 0x6a79e8]
add edx, eax
movzx eax, byte [esi]
movzx eax, word [eax*2 + 0x6a79e8]
add edx, eax
mov eax, edx
and edx, 0x1ff
shr eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul eax, edx
mov edx, dword [esp + 0x24]
add ecx, 0x40
add eax, ecx
mov ecx, dword [esp + 0x9c]
sar eax, 7
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x1c]
movzx eax, byte [ecx + eax]
movzx ecx, word [eax*2 + 0x6a79e8]
mov eax, dword [esp + 0x74]
movzx eax, byte [eax + ebx]
movzx eax, word [eax*2 + 0x6a79e8]
add ecx, eax
mov eax, dword [esp + 0xbc]
movzx eax, byte [edx + eax]
movzx eax, word [eax*2 + 0x6a79e8]
add ecx, eax
movzx eax, byte [edx]
movzx edx, word [eax*2 + 0x6a79e8]
add edx, ecx
mov ecx, 0x200
mov eax, edx
and edx, 0x1ff
shr eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, dword [esp + 0x20]
add ecx, dword [esp + 0x30]
sar eax, 7
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x40]
movzx eax, byte [esi + eax]
movzx edx, word [eax*2 + 0x6a79e8]
movzx eax, byte [ecx + ebp + 4]
movzx eax, word [eax*2 + 0x6a79e8]
add edx, eax
movzx eax, byte [ecx + ebp]
mov ecx, 0x200
movzx eax, word [eax*2 + 0x6a79e8]
add edx, eax
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax]
movzx eax, word [eax*2 + 0x6a79e8]
add edx, eax
mov eax, edx
and edx, 0x1ff
shr eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul edx, eax
add ecx, 0x40
mov eax, dword [esp + 0x14]
add edx, ecx
mov esi, dword [esp + 0x3c]
add ebx, 8
mov ecx, dword [esp + 0x4c]
add dword [esp + 0x24], 8
add dword [esp + 0x1c], 8
mov word [eax], cx
add eax, 8
mov ecx, dword [esp + 0x2c]
mov word [esi + ebp + 2], cx
mov esi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x80]
sar edx, 7
mov dword [esp + 0x14], eax
mov word [esi + ecx], dx
add esi, 8
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x5c], esi
mov word [ecx + ebp + 6], di
add ebp, 8
sub dword [esp + 0x10], 1
jne 0x5a7d80
mov ebx, dword [esp + 0x90]
mov edi, eax
cmp dword [esp + 0x60], 0
je 0x5a8718
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x20]
lea eax, [ecx + edx]
movzx ecx, byte [ecx + ebp]
movzx eax, byte [eax + ebp]
mov dword [esp + 0x14], eax
add eax, ecx
add eax, eax
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x44], eax
cmp eax, 0x3fc
je 0x5a82c5
test eax, eax
je 0x5a82c5
mov esi, dword [eax*4 + 0x65d088]
mov ecx, dword [esp + 0x58]
add ecx, ebp
movzx eax, byte [ecx + edx]
movzx edx, word [eax*2 + 0x6a79e8]
movzx eax, byte [ecx]
mov ecx, 0x200
imul edx, dword [esp + 0x14]
movzx eax, word [eax*2 + 0x6a79e8]
imul eax, dword [esp + 0x7c]
add edx, eax
imul edx, esi
add edx, edx
shr edx, 0x11
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, dword [esp + 0x34]
sar eax, 7
add ecx, ebp
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x20]
movzx eax, byte [ecx + eax]
movzx edx, word [eax*2 + 0x6a79e8]
movzx eax, byte [ecx]
mov ecx, 0x200
imul edx, dword [esp + 0x14]
movzx eax, word [eax*2 + 0x6a79e8]
imul eax, dword [esp + 0x7c]
add edx, eax
imul edx, esi
add edx, edx
shr edx, 0x11
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, dword [esp + 0x30]
sar eax, 7
add ecx, ebp
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x20]
movzx eax, byte [ecx + eax]
movzx edx, word [eax*2 + 0x6a79e8]
movzx eax, byte [ecx]
mov ecx, 0x200
imul edx, dword [esp + 0x14]
movzx eax, word [eax*2 + 0x6a79e8]
imul eax, dword [esp + 0x7c]
add edx, eax
imul edx, esi
add edx, edx
shr edx, 0x11
jmp 0x5a8392
mov ecx, dword [esp + 0x58]
lea esi, [edx + ebp]
movzx eax, byte [ecx + ebp]
movzx edx, word [eax*2 + 0x6a79e8]
movzx eax, byte [ecx + esi]
mov ecx, 0x200
movzx eax, word [eax*2 + 0x6a79e8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul eax, edx
add eax, 0x40
add eax, ecx
mov ecx, dword [esp + 0x34]
sar eax, 7
mov dword [esp + 0x10], eax
movzx eax, byte [ecx + ebp]
movzx edx, word [eax*2 + 0x6a79e8]
movzx eax, byte [ecx + esi]
mov esi, 0x200
mov ecx, esi
movzx eax, word [eax*2 + 0x6a79e8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul eax, edx
add eax, 0x40
add eax, ecx
mov ecx, dword [esp + 0x30]
sar eax, 7
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x20]
add eax, ecx
movzx eax, byte [eax + ebp]
movzx edx, word [eax*2 + 0x6a79e8]
movzx eax, byte [ecx + ebp]
mov ecx, esi
movzx eax, word [eax*2 + 0x6a79e8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul eax, edx
add ecx, 0x40
add ecx, eax
mov eax, dword [esp + 0x10]
mov word [edi], ax
mov eax, dword [esp + 0x2c]
sar ecx, 7
mov word [edi + 2], ax
mov eax, dword [esp + 0x44]
mov word [edi + 4], cx
mov word [edi + 6], ax
jmp 0x5a8718
mov eax, dword [esp + 0x3c]
xor ecx, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], ecx
cmp dword [esp + 0x6c], ecx
jle 0x5a860e
mov ecx, dword [esp + 0x1c8]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x44], edi
lea eax, [ecx + ebp]
mov dword [esp + 0x5c], eax
lea ebx, [ecx + ecx]
lea eax, [edx + edi]
add eax, ecx
mov dword [esp + 0x70], eax
mov eax, edx
sub eax, ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0xac], eax
mov eax, edi
sub eax, ebp
mov dword [esp + 0xa8], eax
mov eax, ecx
sub eax, ebp
mov dword [esp + 0x4c], eax
mov eax, ebp
mov ebp, dword [esp + 0x70]
sub eax, edi
mov dword [esp + 0x10], eax
mov eax, ecx
sub ecx, edi
sub eax, edi
add eax, edx
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x6c]
imul ebx, ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x24], ebx
mov ebx, edx
mov edx, dword [esp + 0x5c]
nop word [eax + eax]
mov eax, dword [esp + 0xac]
movzx eax, byte [eax + edx]
movzx ecx, word [eax*2 + 0x6a79e8]
mov eax, dword [esp + 0x10]
movzx eax, byte [edi + eax]
movzx eax, word [eax*2 + 0x6a79e8]
add ecx, eax
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + ebp]
movzx eax, word [eax*2 + 0x6a79e8]
add ecx, eax
movzx eax, byte [edx]
movzx edx, word [eax*2 + 0x6a79e8]
add edx, ecx
mov ecx, esi
mov eax, edx
and edx, 0x1ff
shr eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul eax, edx
mov edx, dword [esp + 0xa8]
add ecx, 0x40
add eax, ecx
mov ecx, dword [esp + 0x1c]
sar eax, 7
mov word [ecx], ax
movzx eax, byte [edi + ebx]
movzx ecx, word [eax*2 + 0x6a79e8]
mov eax, dword [esp + 0x5c]
movzx eax, byte [edx + eax]
movzx edx, word [eax*2 + 0x6a79e8]
movzx eax, byte [edi]
add edx, ecx
mov ecx, esi
movzx eax, word [eax*2 + 0x6a79e8]
add edx, eax
movzx eax, byte [ebp]
movzx eax, word [eax*2 + 0x6a79e8]
add edx, eax
mov eax, edx
and edx, 0x1ff
shr eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul eax, edx
mov edx, dword [esp + 0x74]
add eax, 0x40
add eax, ecx
mov ecx, dword [esp + 0x1c]
sar eax, 7
mov word [ecx + 2], ax
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x5c]
movzx eax, byte [ecx + eax]
movzx ecx, word [eax*2 + 0x6a79e8]
mov eax, dword [esp + 0x40]
movzx eax, byte [edi + eax]
movzx eax, word [eax*2 + 0x6a79e8]
add ecx, eax
movzx eax, byte [edi + edx]
movzx eax, word [eax*2 + 0x6a79e8]
add ecx, eax
movzx eax, byte [edx + ebp]
movzx edx, word [eax*2 + 0x6a79e8]
add edx, ecx
mov ecx, esi
mov eax, edx
and edx, 0x1ff
shr eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul eax, edx
add eax, 0x40
add eax, ecx
mov ecx, dword [esp + 0x1c]
sar eax, 7
mov word [ecx + 4], ax
mov ebx, dword [esp + 0x1c8]
add ecx, 8
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x1c], ecx
lea eax, [ebx + ebx]
lea edx, [edx + ebx*2]
add ebp, eax
mov ebx, dword [esp + 0x20]
add edi, eax
sub dword [esp + 0x2c], 1
mov dword [esp + 0x5c], edx
jne 0x5a8470
mov ebx, dword [esp + 0x90]
mov ebp, dword [esp + 0x58]
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
cmp dword [esp + 0x60], 0
je 0x5a8718
movzx eax, byte [ecx + ebp]
mov esi, dword [esp + 0x20]
add esi, ecx
movzx edx, word [eax*2 + 0x6a79e8]
movzx eax, byte [esi + ebp]
mov ebp, 0x200
mov ecx, ebp
movzx eax, word [eax*2 + 0x6a79e8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul eax, edx
add eax, 0x40
add eax, ecx
mov ecx, dword [esp + 0x1c]
sar eax, 7
mov word [ecx], ax
mov ecx, ebp
mov eax, dword [esp + 0x24]
movzx eax, byte [eax + edi]
movzx edx, word [eax*2 + 0x6a79e8]
movzx eax, byte [esi + edi]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x24]
movzx eax, word [eax*2 + 0x6a79e8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, dword [esp + 0x30]
sar eax, 7
mov word [esi + 2], ax
mov eax, dword [esp + 0x20]
add eax, ecx
movzx eax, byte [eax + edi]
movzx edx, word [eax*2 + 0x6a79e8]
movzx eax, byte [ecx + edi]
mov ecx, ebp
movzx eax, word [eax*2 + 0x6a79e8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul eax, edx
add eax, 0x40
add eax, ecx
sar eax, 7
mov word [esi + 4], ax
test ebx, ebx
jne 0x5a8741
push dword [esp + 0x8c]
mov ecx, dword [esp + 0x68]
push ecx
push dword [esp + 0x80]
push dword [esp + 0x48]
call dword [0x6ad344]
add esp, 0x10
jmp 0x5a88ba
mov edx, dword [esp + 0x8c]
test edx, edx
jle 0x5a88ba
mov ebp, dword [esp + 0x3c]
mov ecx, dword [esp + 0x64]
add ebp, 4
mov eax, dword [esp + 0x78]
sub eax, ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], edx
nop dword [eax]
movzx eax, word [ebp - 4]
mov edx, dword [ebx]
mov edi, dword [ebx + 0xe4]
mov dword [esp + 0x2c], eax
movzx eax, word [ebp - 2]
mov ecx, dword [ebx + edx*4 + 8]
mov dword [esp + 0x4c], eax
movzx eax, word [ebp]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 4]
sub ecx, dword [ebx + eax*4 + 8]
lea esi, [ecx - 0x80000000]
cmovns esi, ecx
xor ecx, ecx
mov dword [ebx + edx*4 + 8], esi
inc dword [ebx]
mov eax, dword [ebx]
cmp eax, 0x37
cmove eax, ecx
inc dword [ebx + 4]
mov dword [ebx], eax
mov eax, dword [ebx + 4]
cmp eax, 0x37
cmove eax, ecx
lea ecx, [esi + esi]
sar ecx, 0xe
imul ecx, edi
mov dword [ebx + 4], eax
imul eax, dword [esp + 0x2c], 0x25f7
sar ecx, 8
sub ecx, eax
imul eax, dword [esp + 0x10], 0x7080
add ecx, eax
imul eax, dword [esp + 0x4c], 0x4a89
sub ecx, eax
add ecx, 0x2020000
sar ecx, 0x12
test ecx, 0xffffff00
je 0x5a880f
sar ecx, 0x1f
and ecx, 0xffffff01
add ecx, 0xff
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x44]
mov byte [edx + eax], cl
mov edx, dword [ebx]
mov eax, dword [ebx + 4]
mov edi, dword [ebx + 0xe4]
mov ecx, dword [ebx + edx*4 + 8]
sub ecx, dword [ebx + eax*4 + 8]
lea esi, [ecx - 0x80000000]
cmovns esi, ecx
xor ecx, ecx
mov dword [ebx + edx*4 + 8], esi
inc dword [ebx]
mov eax, dword [ebx]
cmp eax, 0x37
cmove eax, ecx
inc dword [ebx + 4]
mov dword [ebx], eax
mov eax, dword [ebx + 4]
cmp eax, 0x37
cmove eax, ecx
lea ecx, [esi + esi]
sar ecx, 0xe
imul ecx, edi
mov dword [ebx + 4], eax
imul eax, dword [esp + 0x10], 0x124c
sar ecx, 8
sub ecx, eax
imul eax, dword [esp + 0x2c], 0x7080
add ecx, eax
imul eax, dword [esp + 0x4c], 0x5e34
sub ecx, eax
add ecx, 0x2020000
sar ecx, 0x12
test ecx, 0xffffff00
je 0x5a88a1
sar ecx, 0x1f
and ecx, 0xffffff01
add ecx, 0xff
mov eax, dword [esp + 0x14]
add ebp, 8
mov byte [eax], cl
inc eax
sub dword [esp + 0x40], 1
mov dword [esp + 0x14], eax
jne 0x5a8770
mov eax, dword [esp + 0x50]
mov ebp, dword [esp + 0x58]
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x34]
mov eax, dword [eax + 0x20]
add dword [esp + 0x78], eax
add dword [esp + 0x64], eax
mov eax, dword [esp + 0x84]
add ebp, eax
mov ecx, dword [esp + 0x88]
add edx, eax
add dword [esp + 0x80], ecx
add edi, eax
cmp dword [esp + 0x94], 0
mov dword [esp + 0x58], ebp
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], edi
je 0x5a890a
add dword [esp + 0x38], eax
sub dword [esp + 0x48], 1
mov ecx, dword [esp + 0x28]
jne 0x5a79d0
jmp 0x5a891f
mov edx, dword [esp + 0x30]
test byte [esp + 0x98], 1
je 0x5a9379
cmp dword [esp + 0x18], 0
je 0x5a8b34
push dword [esp + 0x28]
push dword [esp + 0x58]
cmp ebp, edx
jae 0x5a8b28
push ebp
call dword [0x6ad340]
mov eax, dword [esp + 0x34]
add esp, 0xc
mov edi, dword [esp + 0x1c8]
mov esi, dword [esp + 0x94]
test esi, esi
je 0x5a8987
push 0
push dword [esp + 0x6c]
push 1
push eax
push 0
push dword [esp + 0x4c]
call dword [0x6ad31c]
add esp, 0x18
neg eax
sbb eax, eax
inc eax
and esi, eax
mov eax, dword [esp + 0x28]
mov edx, eax
sar edx, 1
mov dword [esp + 0x80], edx
test esi, esi
jne 0x5a8d37
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x34]
mov dword [esp + 0x18], ecx
xor ecx, ecx
mov dword [esp + 0x6c], ecx
test edx, edx
jle 0x5a8c63
lea ebx, [edi + edi]
mov ecx, ebp
mov ebp, dword [esp + 0x34]
lea eax, [esi + edi]
mov edi, dword [esp + 0x30]
sub ecx, esi
sub edi, esi
mov dword [esp + 0x44], ebx
mov esi, dword [esp + 0x18]
imul ebx, edx
mov dword [esp + 0x84], edi
mov edi, 0x200
mov dword [esp + 0x68], eax
mov dword [esp + 0x70], ecx
mov dword [esp + 0x6c], ebx
mov ebx, edx
nop dword [eax]
nop word [eax + eax]
movzx eax, byte [eax + ecx]
movzx edx, word [eax*2 + 0x6a79e8]
movzx eax, byte [ecx + ebp]
mov ecx, edi
movzx eax, word [eax*2 + 0x6a79e8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul eax, edx
add eax, 0x40
add eax, ecx
mov ecx, edi
sar eax, 7
mov word [esi], ax
movzx eax, byte [ebp]
movzx edx, word [eax*2 + 0x6a79e8]
mov eax, dword [esp + 0x68]
movzx eax, byte [eax]
movzx eax, word [eax*2 + 0x6a79e8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul eax, edx
add eax, 0x40
add eax, ecx
mov ecx, dword [esp + 0x84]
sar eax, 7
mov word [esi + 2], ax
mov eax, dword [esp + 0x68]
movzx eax, byte [eax + ecx]
movzx edx, word [eax*2 + 0x6a79e8]
movzx eax, byte [ecx + ebp]
mov ecx, edi
add ebp, dword [esp + 0x44]
movzx eax, word [eax*2 + 0x6a79e8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, dword [esp + 0x70]
sar eax, 7
mov word [esi + 4], ax
add esi, 8
mov eax, dword [esp + 0x68]
add eax, dword [esp + 0x44]
mov dword [esp + 0x68], eax
sub ebx, 1
jne 0x5a8a00
mov ebx, dword [esp + 0x90]
mov ebp, dword [esp + 0x58]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x34]
jmp 0x5a8c68
push edx
call dword [0x6ad33c]
jmp 0x5a894f
mov eax, dword [esp + 0x28]
xor esi, esi
mov dword [esp + 0x60], esi
test eax, eax
jle 0x5a8956
sub edx, edi
mov eax, ebp
mov ecx, edi
mov dword [esp + 0x70], edx
sub eax, edi
mov dword [esp + 0x10], ecx
mov edi, dword [esp + 0x1c8]
mov dword [esp + 0x88], eax
nop dword [eax]
nop dword [eax + eax]
mov ebp, dword [esp + 0x88]
movzx edx, byte [edx + ecx]
movzx eax, byte [ecx]
mov dword [esp + 0x44], edx
movzx ecx, byte [ecx + ebp]
mov dword [esp + 0x84], eax
mov dword [esp + 0x48], ecx
test ebx, ebx
jne 0x5a8bb7
imul ecx, eax, 0x8123
imul eax, dword [esp + 0x48], 0x41c7
add ecx, eax
imul eax, edx, 0x1914
add eax, 0x108000
add eax, ecx
shr eax, 0x10
jmp 0x5a8c34
mov edx, dword [ebx]
mov eax, dword [ebx + 4]
mov edi, dword [ebx + 0xe4]
mov ecx, dword [ebx + edx*4 + 8]
sub ecx, dword [ebx + eax*4 + 8]
lea esi, [ecx - 0x80000000]
cmovns esi, ecx
xor ecx, ecx
mov dword [ebx + edx*4 + 8], esi
inc dword [ebx]
mov eax, dword [ebx]
cmp eax, 0x37
cmove eax, ecx
inc dword [ebx + 4]
mov dword [ebx], eax
mov eax, dword [ebx + 4]
cmp eax, 0x37
cmove eax, ecx
lea ecx, [esi + esi]
sar ecx, 0x10
mov esi, dword [esp + 0x60]
mov dword [ebx + 4], eax
imul eax, dword [esp + 0x84], 0x8123
imul ecx, edi
mov edi, dword [esp + 0x1c8]
sar ecx, 8
add ecx, eax
imul eax, dword [esp + 0x48], 0x41c7
add ecx, eax
imul eax, dword [esp + 0x44], 0x1914
add eax, 0x108000
add eax, ecx
sar eax, 0x10
mov ebp, dword [esp + 0x54]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x70]
add ecx, edi
mov dword [esp + 0x10], ecx
mov byte [esi + ebp], al
inc esi
mov eax, dword [esp + 0x28]
mov dword [esp + 0x60], esi
cmp esi, eax
jl 0x5a8b70
mov ebp, dword [esp + 0x58]
jmp 0x5a895d
mov edi, 0x200
test al, 1
je 0x5a91ea
movzx eax, byte [ecx + ebp]
mov ecx, edi
mov ebp, dword [esp + 0x18]
movzx edx, word [eax*2 + 0x6a79e8]
shl edx, 2
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, edi
sar eax, 7
mov word [ebp], ax
mov eax, dword [esp + 0x6c]
movzx eax, byte [eax + esi]
movzx edx, word [eax*2 + 0x6a79e8]
shl edx, 2
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul eax, edx
add eax, 0x40
add eax, ecx
mov ecx, dword [esp + 0x6c]
sar eax, 7
mov word [ebp + 2], ax
mov eax, dword [esp + 0x30]
movzx eax, byte [ecx + eax]
movzx ecx, word [eax*2 + 0x6a79e8]
shl ecx, 2
mov eax, ecx
and ecx, 0x1ff
sar eax, 9
sub edi, ecx
imul edi, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul eax, ecx
add eax, 0x40
add eax, edi
sar eax, 7
mov word [ebp + 4], ax
jmp 0x5a91ea
mov esi, dword [esp + 0x3c]
xor ecx, ecx
mov edi, dword [esp + 0x34]
mov dword [esp + 0x14], esi
mov dword [esp + 0x24], ecx
test edx, edx
jle 0x5a9025
mov eax, dword [esp + 0x38]
mov ecx, edi
sub eax, ebp
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x88], eax
mov eax, edi
sub eax, ebp
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x30]
mov ebx, eax
sub ebx, ebp
mov dword [esp + 0x2c], ebx
mov ebx, esi
sub ebx, ebp
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x38]
sub ebx, edi
sub eax, edi
mov dword [esp + 0x10], eax
lea edi, [ebp + 4]
lea eax, [edx*8]
mov dword [esp + 0x84], ebx
mov dword [esp + 0x24], eax
mov ebx, 0x200
nop word [eax + eax]
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x84]
movzx eax, byte [eax + edi]
movzx ecx, byte [edx + ecx]
mov dword [esp + 0x18], eax
add eax, ecx
add eax, eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x70], eax
cmp eax, 0x3fc
je 0x5a8ee7
test eax, eax
je 0x5a8ee7
mov esi, dword [eax*4 + 0x65d088]
movzx eax, byte [edi - 4]
movzx edx, word [eax*2 + 0x6a79e8]
movzx eax, byte [edi]
imul edx, ecx
mov ecx, ebx
movzx eax, word [eax*2 + 0x6a79e8]
imul eax, dword [esp + 0x18]
add edx, eax
imul edx, esi
add edx, edx
shr edx, 0x11
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, ebx
sar eax, 7
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x60]
movzx eax, byte [eax + edi]
movzx edx, word [eax*2 + 0x6a79e8]
mov eax, dword [esp + 0x1c]
imul edx, dword [esp + 0x18]
movzx eax, byte [eax]
movzx eax, word [eax*2 + 0x6a79e8]
imul eax, dword [esp + 0x48]
add edx, eax
imul edx, esi
add edx, edx
shr edx, 0x11
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, dword [esp + 0x10]
sar eax, 7
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax + edi]
movzx edx, word [eax*2 + 0x6a79e8]
mov eax, dword [esp + 0x1c]
imul edx, dword [esp + 0x18]
movzx eax, byte [ecx + eax]
movzx eax, word [eax*2 + 0x6a79e8]
imul eax, dword [esp + 0x48]
add edx, eax
imul edx, esi
mov esi, dword [esp + 0x14]
add edx, edx
shr edx, 0x11
jmp 0x5a8fa7
movzx eax, byte [edi - 4]
mov ecx, ebx
movzx edx, word [eax*2 + 0x6a79e8]
movzx eax, byte [edi]
movzx eax, word [eax*2 + 0x6a79e8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul eax, edx
add eax, 0x40
add eax, ecx
mov ecx, ebx
sar eax, 7
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x60]
movzx eax, byte [eax + edi]
movzx edx, word [eax*2 + 0x6a79e8]
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax]
movzx eax, word [eax*2 + 0x6a79e8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, dword [esp + 0x10]
sar eax, 7
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x1c]
movzx eax, byte [ecx + eax]
movzx edx, word [eax*2 + 0x6a79e8]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax + edi]
movzx eax, word [eax*2 + 0x6a79e8]
add edx, eax
add edx, edx
mov eax, edx
mov ecx, ebx
sar eax, 9
and edx, 0x1ff
sub ecx, edx
imul ecx, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul eax, edx
add ecx, 0x40
add ecx, eax
mov eax, dword [esp + 0x4c]
mov word [esi], ax
mov eax, dword [esp + 0x40]
mov word [esi + 2], ax
mov eax, dword [esp + 0x44]
sar ecx, 7
mov word [eax + edi], cx
add edi, 8
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x70]
add ecx, 8
mov word [esi + 6], ax
add esi, 8
sub dword [esp + 0x80], 1
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], esi
jne 0x5a8db0
mov ebx, dword [esp + 0x90]
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
test al, 1
je 0x5a91ea
mov eax, dword [esp + 0x38]
movzx eax, byte [eax + ecx]
mov dword [esp + 0x18], eax
shl eax, 2
cmp eax, 0x3fc
je 0x5a9111
test eax, eax
je 0x5a9111
mov esi, dword [eax*4 + 0x65d088]
movzx eax, byte [ecx + ebp]
mov ebp, 0x200
mov ecx, ebp
movzx edx, word [eax*2 + 0x6a79e8]
imul edx, esi
imul edx, dword [esp + 0x18]
shl edx, 2
shr edx, 0x11
mov eax, edx
and edx, 0x1ff
sub ecx, edx
sar eax, 9
imul ecx, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, ebp
sar eax, 7
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x24]
movzx eax, byte [edi + eax]
mov edi, dword [esp + 0x18]
movzx edx, word [eax*2 + 0x6a79e8]
imul edx, esi
imul edx, edi
shl edx, 2
shr edx, 0x11
mov eax, edx
and edx, 0x1ff
sub ecx, edx
sar eax, 9
imul ecx, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul edx, eax
mov eax, dword [esp + 0x30]
add ecx, 0x40
add edx, ecx
mov ecx, dword [esp + 0x24]
movzx eax, byte [eax + ecx]
movzx ecx, word [eax*2 + 0x6a79e8]
imul ecx, esi
mov esi, dword [esp + 0x14]
imul ecx, edi
shl ecx, 2
shr ecx, 0x11
jmp 0x5a91a6
movzx eax, byte [ecx + ebp]
mov ebp, 0x200
mov ecx, ebp
movzx edx, word [eax*2 + 0x6a79e8]
shl edx, 2
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, ebp
sar eax, 7
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x24]
movzx eax, byte [edi + eax]
mov edi, dword [esp + 0x18]
movzx edx, word [eax*2 + 0x6a79e8]
shl edx, 2
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul edx, eax
mov eax, dword [esp + 0x30]
add ecx, 0x40
add edx, ecx
mov ecx, dword [esp + 0x24]
movzx eax, byte [eax + ecx]
movzx ecx, word [eax*2 + 0x6a79e8]
shl ecx, 2
mov eax, ecx
sar edx, 7
sar eax, 9
and ecx, 0x1ff
sub ebp, ecx
mov word [esi + 2], dx
imul ebp, dword [eax*4 + 0x6a7960]
mov eax, dword [eax*4 + 0x6a7964]
imul eax, ecx
lea ecx, [ebp + 0x40]
add ecx, eax
mov eax, dword [esp + 0x48]
mov word [esi], ax
lea eax, [edi*4]
sar ecx, 7
mov word [esi + 4], cx
mov word [esi + 6], ax
test ebx, ebx
jne 0x5a9213
push dword [esp + 0x8c]
mov ecx, dword [esp + 0x68]
push ecx
push dword [esp + 0x80]
push dword [esp + 0x48]
call dword [0x6ad344]
add esp, 0x10
jmp 0x5a9379
cmp dword [esp + 0x8c], 0
jle 0x5a9379
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0x78]
add ebp, 4
sub eax, dword [esp + 0x64]
mov dword [esp + 0x78], eax
movzx eax, word [ebp - 4]
mov edx, dword [ebx]
mov edi, dword [ebx + 0xe4]
mov dword [esp + 0x10], eax
movzx eax, word [ebp - 2]
mov ecx, dword [ebx + edx*4 + 8]
mov dword [esp + 0x48], eax
movzx eax, word [ebp]
mov dword [esp + 0x60], eax
mov eax, dword [ebx + 4]
sub ecx, dword [ebx + eax*4 + 8]
lea esi, [ecx - 0x80000000]
cmovns esi, ecx
xor ecx, ecx
mov dword [ebx + edx*4 + 8], esi
inc dword [ebx]
mov eax, dword [ebx]
cmp eax, 0x37
cmove eax, ecx
inc dword [ebx + 4]
mov dword [ebx], eax
mov eax, dword [ebx + 4]
cmp eax, 0x37
cmove eax, ecx
lea ecx, [esi + esi]
sar ecx, 0xe
mov dword [ebx + 4], eax
imul eax, dword [esp + 0x48], 0x4a89
imul ecx, edi
sar ecx, 8
sub ecx, eax
imul eax, dword [esp + 0x10], 0x25f7
sub ecx, eax
imul eax, dword [esp + 0x60], 0x7080
add eax, 0x2020000
add eax, ecx
sar eax, 0x12
test eax, 0xffffff00
je 0x5a92cf
sar eax, 0x1f
and eax, 0xffffff01
add eax, 0xff
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x78]
mov byte [ecx + edx], al
mov edx, dword [ebx]
mov eax, dword [ebx + 4]
mov edi, dword [ebx + 0xe4]
mov ecx, dword [ebx + edx*4 + 8]
sub ecx, dword [ebx + eax*4 + 8]
lea esi, [ecx - 0x80000000]
cmovns esi, ecx
xor ecx, ecx
mov dword [ebx + edx*4 + 8], esi
inc dword [ebx]
mov eax, dword [ebx]
cmp eax, 0x37
cmove eax, ecx
inc dword [ebx + 4]
mov dword [ebx], eax
mov eax, dword [ebx + 4]
cmp eax, 0x37
cmove eax, ecx
lea ecx, [esi + esi]
sar ecx, 0xe
mov dword [ebx + 4], eax
imul eax, dword [esp + 0x48], 0x5e34
imul ecx, edi
sar ecx, 8
sub ecx, eax
imul eax, dword [esp + 0x60], 0x124c
sub ecx, eax
imul eax, dword [esp + 0x10], 0x7080
add eax, 0x2020000
add eax, ecx
sar eax, 0x12
test eax, 0xffffff00
je 0x5a935d
sar eax, 0x1f
and eax, 0xffffff01
add eax, 0xff
mov ecx, dword [esp + 0x64]
add ebp, 8
mov byte [ecx], al
inc ecx
sub dword [esp + 0x8c], 1
mov dword [esp + 0x64], ecx
jne 0x5a9234
push dword [esp + 0x3c]
call fcn.00447f00
add esp, 4
mov eax, 1
jmp 0x5a938e
xor eax, eax
mov ecx, dword [esp + 0x1b0]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0058f0d5
add esp, 0x1a4
ret