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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0xcf28
call fcn.10512080
mov eax, dword [0x10a78b80]
xor eax, esp
mov dword [esp + 0xcf24], eax
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
mov dword [esp + 0xf4], eax
mov eax, dword [ebp + 0x1c]
push esi
mov dword [esp + 0x5c], eax
lea eax, [ecx + 0x3abf0]
push edi
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x80], eax
lea esi, [edi + 0xe0]
mov eax, dword [esi + 0xfd0]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], edx
mov eax, dword [eax]
mov dword [esp + 0x44], eax
mov dword [esp + 0xe0], esi
mov dword [esp + 0x5c], 0
mov al, byte [eax + 0x9f]
and al, 7
mov dword [esp + 0xa4], 0
cmp dword [ecx + 0x5d0c0], 0
mov byte [esp + 0xd0], al
mov al, byte [ecx + 0x5d1ae]
mov dword [esp + 0xb4], 0xffffffff
mov dword [esp + 0x74], eax
mov dword [esp + 0x6c], 0
je 0x10486ed8
mov eax, dword [ecx + 0x3e7a8]
mov dword [esp + 0x58], 1
cmp dword [eax + 0x48], 8
je 0x10486ee0
mov dword [esp + 0x58], 0
movzx eax, byte [edx + 0x10a16368]
xorps xmm0, xmm0
mov dword [esp + 0xf8], eax
movzx eax, byte [edx + 0x10a16350]
mov dword [esp + 0xc0], eax
imul eax, dword [esp + 0xf8]
movups xmmword [esp + 0xd48], xmm0
mov dword [esp + 0xdc], 0xffffffff
movups xmmword [esp + 0xd58], xmm0
mov dword [esp + 0xcc], htons
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x110], eax
mov eax, dword [esi]
mov dword [esp + 0xc4], eax
mov eax, dword [esi + 4]
mov dword [esp + 0xbc], eax
lea eax, [edi + 0x31e8]
mov dword [esp + 0x48], eax
lea eax, [ecx + 0x3abf0]
mov ecx, dword [eax + 0x34]
mov eax, dword [eax + 0x30]
push ecx
push eax
push ecx
movq qword [esp + 0xe3c], xmm0
movups xmm0, xmmword [esi + 0x1c]
push eax
lea eax, [esp + 0x240]
mov byte [esp + 0x100], 0
xor esi, esi
push eax
movups xmmword [esp + 0x114], xmm0
mov dword [esp + 0x9c], esi
mov dword [esp + 0xc0], esi
call fcn.10117600
add esp, 0x14
cmp dword [esp + 0x58], esi
je 0x10487029
mov ecx, dword [esp + 0x40]
lea eax, [esp + 0xf20]
mov edx, dword [esp + 0xc0]
mov dword [esp + 0xee8], eax
add eax, ecx
mov dword [esp + 0xef4], eax
lea eax, [esp + 0xf20]
lea eax, [eax + ecx*2]
mov dword [esp + 0xeec], edx
mov dword [esp + 0xf00], eax
mov eax, dword [edi + 0xfc]
mov dword [esp + 0xf0c], eax
mov eax, dword [edi + 0x10c]
mov dword [esp + 0xef0], esi
mov dword [esp + 0xef8], edx
mov dword [esp + 0xefc], esi
mov dword [esp + 0xf04], edx
mov dword [esp + 0xf08], esi
mov dword [esp + 0xf10], eax
mov dword [esp + 0xf14], esi
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx + 0xdc]
cmp eax, 0xffffffff
je 0x10487048
shl eax, 4
lea edx, [ecx + 0x10c]
add edx, eax
jmp 0x1048704a
xor edx, edx
mov eax, dword [ecx + 0xe8]
cmp eax, 0xffffffff
je 0x10487062
shl eax, 4
add ecx, 0x10c
add ecx, eax
jmp 0x10487064
xor ecx, ecx
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x1048707d
mov eax, dword [edx + 4]
mov dword [esp + 0xe4], 1
cmp eax, dword [ecx + 4]
je 0x10487084
mov dword [esp + 0xe4], esi
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
cmp dword [eax + 0xc4a8], esi
je 0x104870ce
mov eax, dword [ecx + 0x91588]
test eax, eax
jle 0x104870ce
cmp dword [ecx + 0x916d0], esi
jne 0x104870ce
cmp dword [ecx + eax*4 + 0x916b8], 8
jne 0x104870ce
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx + 0x34]
imul eax, dword [ecx + 0x30]
cmp eax, 0x4b000
jle 0x104870ce
mov dword [esp + 0x88], 0xfffcfffc
mov eax, dword [esp + 0xe0]
lea ecx, [esp + 0x5e8]
mov edi, 4
mov eax, dword [eax + 0xfd0]
mov eax, dword [eax]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x308]
nop dword [eax]
nop dword [eax + eax]
mov edx, 8
nop word [eax + eax]
mov dword [ecx], 0xffffffff
add ecx, 4
mov dword [eax], 0xffffffff
mov dword [eax + 4], closesocket
add eax, 8
sub edx, 1
jne 0x10487110
sub edi, 1
jne 0x10487100
mov edi, dword [esp + 0x2c]
mov ax, word [edi + 0x2438c]
mov word [edi + 0x24392], ax
lea eax, [esp + 0x240]
push eax
call fcn.1048b1b0
movzx eax, byte [esp + 0xd4]
lea ecx, [esp + 0x66c]
push ecx
push dword [esp + 0x24]
mov dword [esp + 0x4c], eax
push eax
lea eax, [edi + 0x31e8]
push eax
lea eax, [edi + 0xe0]
push eax
push dword [esp + 0x98]
call fcn.1048acc0
push 0xc8
lea eax, [esp + 0xd88]
push 0
push eax
call fcn.10513d40
mov eax, dword [esp + 0x124]
add esp, 0x28
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov byte [edi + 0x23b80], 0
mov dword [eax], closesocket
mov dword [eax + 8], 0xffffffff
mov dword [eax + 0xc], closesocket
mov dword [eax + 0x10], 0xffffffff
mov dword [eax + 0x14], closesocket
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x1c], closesocket
mov byte [eax + 0x20], 0
mov dword [eax + 4], esi
mov eax, dword [esp + 0x38]
mov dword [edi + 0x14d90], 0xffffffff
mov dword [edi + 0x14e14], 0xffffffff
mov dword [edi + 0x14e98], 0xffffffff
mov dword [edi + 0x14f1c], 0xffffffff
mov dword [edi + 0x14fa0], 0xffffffff
mov dword [edi + 0x15024], 0xffffffff
mov dword [edi + 0x150a8], 0xffffffff
mov dword [edi + 0x1512c], 0xffffffff
mov dword [esp + 0x2e0], htons
mov dword [esp + 0x2e8], 0xffffffff
mov dword [esp + 0x2ec], htons
mov dword [esp + 0x2f0], 0xffffffff
mov dword [esp + 0x2f4], htons
mov dword [esp + 0x2f8], 0xffffffff
mov dword [esp + 0x2fc], htons
mov byte [esp + 0x300], 0
mov dword [esp + 0x2e4], esi
mov dword [esp + 0x2b8], htons
mov dword [esp + 0x2c0], 0xffffffff
mov dword [esp + 0x2c4], htons
mov dword [esp + 0x2c8], 0xffffffff
mov dword [esp + 0x2cc], htons
mov dword [esp + 0x2d0], 0xffffffff
mov dword [esp + 0x2d4], htons
mov byte [esp + 0x2d8], 0
mov dword [esp + 0x2bc], esi
mov dword [eax], edx
mov word [eax + 0x14], 0xffff
test byte [ecx + 0x5ccb0], 1
je 0x1048733f
lea eax, [esp + 0xe31]
push eax
push dword [edi + 0x141f0]
lea eax, [esp + 0x410]
push 0
push edx
push eax
lea eax, [esp + 0x69c]
push eax
push 1
push edi
push ecx
call fcn.10459de0
mov eax, dword [esp + 0x5c]
add esp, 0x24
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
lea esi, [esp + 0xa4]
push esi
lea esi, [esp + 0xd4c]
push esi
push dword [esp + 0xec]
push edx
push dword [esp + 0xcc]
push dword [esp + 0xd8]
push eax
push edi
push ecx
call fcn.1048af30
add esp, 0x24
cmp dword [edi + 0x141f0], 0
jne 0x10487398
cmp dword [edi + 0x161b0], 2
jle 0x10487394
cmp byte [edi + 0x24392], 2
je 0x10487394
cmp byte [edi + 0x24393], 2
jne 0x10487398
xor edx, edx
jmp 0x1048739d
mov edx, 1
mov al, 2
mov dword [esp + 0x54], edx
lea ecx, [esp + 0xd50]
mov byte [esp + 0x34], al
lea esi, [esp + 0xe32]
mov dword [esp + 0x38], ecx
nop dword [eax]
cmp dword [ecx], 0
je 0x104873fb
push esi
push edx
push dword [esp + 0xac]
lea eax, [esp + 0x414]
push dword [esp + 0x28]
push eax
lea eax, [esp + 0x69c]
push eax
push dword [esp + 0x4c]
push edi
push dword [esp + 0x34]
call fcn.10459de0
mov al, byte [esp + 0x58]
add esp, 0x24
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x54]
inc al
add ecx, 4
mov byte [esp + 0x34], al
inc esi
mov dword [esp + 0x38], ecx
cmp al, 7
jle 0x104873c0
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x5d0a8], 0
je 0x1048746a
mov ecx, dword [esp + 0x1c]
mov ah, byte [ecx + 0x10a16350]
mov al, byte [ecx + 0x10a16368]
cmp ah, al
movzx ecx, al
movzx edx, ah
cmovae edx, ecx
cmp edx, 8
jb 0x1048746a
mov ecx, dword [esp + 0x1c]
cmp ecx, 6
jle 0x10487458
mov eax, dword [esp + 0x14]
mov al, byte [eax + 0x5d1a1]
mov byte [esp + 0xf0], al
mov eax, 6
xor edx, edx
cmp ecx, eax
cmovle eax, edx
mov dword [esp + 0x78], eax
jmp 0x10487472
mov dword [esp + 0x78], 0
mov ecx, dword [edi + 0x14d24]
cmp ecx, 0x7fffffff
je 0x104874b8
mov eax, ecx
cdq
shld edx, eax, 1
add eax, eax
mov dword [esp + 0xcc], edx
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x5d09c], 1
jne 0x104874b8
sar ecx, 2
mov eax, ecx
cdq
add dword [esp + 0xdc], eax
adc dword [esp + 0xcc], edx
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0x3eb3c], 1
jne 0x10487505
cmp dword [esp + 0x1c], 9
jl 0x10487505
mov eax, dword [edi + 0x10b0]
mov eax, dword [eax]
movzx eax, byte [eax + 0x9f]
and eax, 7
cmp eax, 1
je 0x10487505
cmp eax, 2
je 0x10487505
cmp dword [ecx + 0x3ae08], 0
je 0x10487505
cmp byte [ecx + 0x3eebb], 0
mov dword [esp + 0xa0], 1
je 0x10487510
mov dword [esp + 0xa0], 0
xor eax, eax
cmp dword [edi + 0x14d10], 1
mov dword [esp + 0xd4], eax
jle 0x1048752a
mov eax, dword [ecx + 0x5cf48]
jmp 0x1048752c
xor eax, eax
cmp dword [ecx + 0x5d0c8], 0
mov dword [esp + 0xe8], eax
jne 0x10487549
mov dword [esp + 0x64], 0
jmp 0x10487628
test eax, eax
jne 0x1048755a
mov dword [esp + 0x64], 1
jmp 0x10487628
mov eax, dword [edi + 0x10b8]
test eax, eax
je 0x10487620
mov edx, dword [edi + 0x10bc]
test edx, edx
je 0x10487620
push eax
call fcn.100bc5e0
add esp, 4
test eax, eax
je 0x10487620
push edx
call fcn.100bc5e0
add esp, 4
test eax, eax
je 0x10487620
mov eax, dword [edi + 0x10b8]
mov eax, dword [eax + 0x18]
mov ecx, eax
shr ecx, 0x10
cmp eax, dword [edx + 0x18]
jne 0x10487620
cmp dword [esp + 0xe8], 1
jne 0x104875ba
test cx, cx
jne 0x10487620
mov edx, dword [esp + 0xbc]
xor eax, eax
push dword [esp + 0x40]
cmp cx, 1
sete al
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xc8]
lea edx, [edx + eax]
mov eax, dword [esp + 0x20]
mov cl, byte [eax + 0x10a162f0]
mov eax, dword [esp + 0x18]
sar edx, cl
add dl, byte [eax + 0x3ac00]
and edx, 1
mov dword [esp + 0x68], edx
call fcn.1048ac10
add esp, 4
test eax, eax
je 0x10487628
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x64], 1
mov dword [esp + 0xd4], eax
jmp 0x10487628
mov dword [esp + 0x64], 2
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x80]
mov dword [esp + 0x40], 0
and byte [edx + 0x9f], 0xcf
mov word [edx + 5], 0
mov word [edx + 0x14], 0xffff
mov word [edx + 0x86], 0
mov byte [edx + 0x53], 0
mov dword [edx + 0x10], 0
mov dword [edx + 0xc], 0
mov word [edx + 0x1c], 0x100
mov byte [edx + 0x44], 0
mov eax, dword [eax + 0x1c8]
cmp eax, 4
movzx ecx, ax
cmove ecx, dword [esp + 0x40]
movzx eax, cx
mov ecx, eax
shl ecx, 0x10
or ecx, eax
mov dword [edx + 0x18], ecx
movzx eax, byte [edi + 0x23b6c]
mov dh, byte [eax + 0x10a14648]
mov eax, dword [esp + 0x1c]
mov dl, byte [eax + 0x10a164a0]
cmp dl, dh
movzx eax, dh
movzx ecx, dl
cmovae ecx, eax
cmp ecx, 2
jae 0x104876c5
cmp dl, dh
movzx ecx, dl
movzx eax, dh
cmovae ecx, eax
jmp 0x104876c7
mov cl, 2
mov edx, dword [esp + 0x44]
xorps xmm0, xmm0
movlpd qword [esp + 0xf18], xmm0
mov byte [edx + 0x89], cl
mov ecx, 0x10a1513c
movsx eax, byte [ecx]
add ecx, 2
mov byte [esp + eax + 0xf18], 1
cmp ecx, 0x10a15154
jl 0x104876e2
mov eax, 1
lea ecx, [esp + 0xccc]
mov dword [esp + 0x38], eax
mov dword [esp + 0x54], ecx
nop dword [eax]
cmp byte [esp + eax + 0xf18], 0
je 0x10487760
movsx eax, al
mov byte [esp + 0x34], 0xd
movzx esi, word [edi + eax*2 + 0x3138]
mov edi, ecx
nop dword [eax]
push esi
push dword [esp + 0x38]
push dword [esp + 0x50]
call fcn.10167560
mov dword [edi], eax
lea edi, [edi + 0x20]
mov al, byte [esp + 0x40]
add esp, 0xc
inc al
mov byte [esp + 0x34], al
cmp al, 0x10
jbe 0x10487730
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x54]
inc eax
add ecx, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x54], ecx
cmp eax, 8
jl 0x10487710
mov esi, dword [esp + 0xe0]
mov edi, 0x1000
mov byte [esp + 0x27], 0xff
mov dword [esp + 0x1c0], 0
mov dword [esp + 0x120], 0
movzx eax, byte [esi + 0x84]
mov dword [esp + 0x17c], eax
movzx eax, byte [esi + 0x85]
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x180], eax
mov eax, dword [esp + 0xc4]
shl eax, 2
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0xbc]
shl eax, 2
mov dword [esp + 0x188], eax
mov eax, dword [esi + 0x1a78]
mov dword [esp + 0x1ac], eax
mov eax, dword [esi + 0x1008]
mov dword [esp + 0x1a0], edx
mov edx, 0x120
sar edx, cl
shl edx, 0xa
mov eax, dword [eax + 0x8c]
shr eax, 3
and eax, 1
mov dword [esp + 0x1a4], ecx
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x1b0], eax
mov eax, edi
sub eax, edx
mov dword [esp + 0x124], 0
mov dword [esp + 0x1c4], eax
mov eax, 0x120
sar eax, cl
mov ecx, dword [esi + 0x1a78]
mov esi, dword [esp + 0x88]
add ecx, 6
shl eax, 0xa
sub edi, eax
mov dword [esp + 0x1e8], 0
mov dword [esp + 0x1c8], edi
mov dword [esp + 0x1ec], 0
mov dword [esp + 0x1dc], 3
mov dword [esp + 0x1e0], 0xb
cmp ecx, 0x10
jle 0x1048789f
lea eax, [ecx - 0xd]
mov dword [esp + 0x1dc], eax
mov eax, 0x1b
sub eax, ecx
mov dword [esp + 0x1e0], eax
mov edi, dword [esp + 0x2c]
xor eax, eax
mov edx, dword [esp + 0x14]
mov dword [esp + 0x1d4], 0
mov dword [esp + 0x1d8], 0
mov ecx, dword [edi + 0x14d10]
test ecx, ecx
mov dword [esp + 0x1d0], 0
movups xmm0, xmmword [esp + 0x1d0]
mov dword [esp + 0x1e4], 0
sete al
mov dword [edi + 0x243a8], eax
cmp dword [edx + 0x3ede8], 1
movups xmmword [esp + 0x14c], xmm0
movups xmm0, xmmword [esp + 0x1e0]
movups xmmword [esp + 0x15c], xmm0
movq xmm0, qword [esp + 0x1f0]
movq qword [esp + 0x16c], xmm0
jne 0x104879a5
cmp dword [edi + 0x141f0], 0
jne 0x104879a5
test ecx, ecx
je 0x104879a5
cmp dword [edi + 0x243a4], 0
mov ecx, dword [esp + 0x1c]
jne 0x104879a9
mov eax, dword [edx + 0x3e7a8]
cmp ecx, dword [eax + 0x1c]
jge 0x104879a9
mov eax, dword [esp + 0x44c]
cmp eax, dword [edx + 0x3ac20]
jne 0x104879a9
mov eax, dword [esp + 0x450]
cmp eax, dword [edx + 0x3ac24]
jne 0x104879a9
push dword [esp + 0x454]
mov eax, dword [edx]
push dword [esp + 0x448]
shl ecx, 6
push dword [edi + 0x28]
push dword [edi + 0x18]
mov eax, dword [ecx + eax + 0xc5cc]
call eax
mov edx, dword [esp + 0x24]
add esp, 0x10
mov ecx, dword [esp + 0x1c]
test eax, eax
jne 0x104879a9
mov dword [edi + 0x243a8], 1
jmp 0x104879a9
mov ecx, dword [esp + 0x1c]
mov eax, dword [edi + 0x243ac]
mov dword [esp + 0x34], 0
mov dword [edi + 0x243b0], eax
test eax, eax
je 0x104879ea
mov eax, dword [edx + 0x3e7a8]
mov eax, dword [eax + 0x1c]
cmp eax, 0xf
jne 0x104879d6
cmp ecx, 0xc
jl 0x104879e0
jmp 0x104879ea
cmp eax, 0xc
jne 0x104879ea
cmp ecx, 9
jge 0x104879ea
mov dword [edi + 0x243b0], 0
mov eax, dword [esp + 0x78]
lea ecx, [edx + 0x91588]
add eax, 0xc
mov dword [edi + 0x24398], 0xffffffff
mov dword [esp + 0xc8], eax
movzx eax, byte [esp + 0xd0]
mov dword [esp + 0xb0], eax
lea eax, [edx + 0x3abf0]
mov dword [esp + 0xd8], eax
lea eax, [edi + 0xe0]
mov dword [edi + 0x2439c], 0x7fffffff
mov dword [esp + 0x68], 0
mov dword [esp + 0xec], eax
mov dword [esp + 0xf4], ecx
nop word [eax + eax]
cmp byte [edx + 0x5d1a4], 0
mov eax, dword [esp + 0x68]
je 0x10487b70
cmp eax, 0xc
jne 0x10487b70
mov edi, dword [0x10b47804]
lea eax, [esp + 0x5f8]
mov edx, 4
mov dword [esp + 0x54], eax
or ecx, 0xffffffff
mov dword [esp + 0x78], edx
lea esi, [esp + 0x5e8]
nop
cmp edi, 2
jl 0x10487ad7
movd xmm0, ecx
pshufd xmm1, xmm0, 0
movups xmm0, xmmword [eax - 0x10]
movaps xmm2, xmm1
pminud xmm2, xmm0
movups xmm0, xmmword [eax]
pminud xmm1, xmm0
pminud xmm2, xmm1
movaps xmm0, xmm2
psrldq xmm0, 8
pminud xmm2, xmm0
movups xmm0, xmm2
psrldq xmm0, 4
pminud xmm2, xmm0
movd ecx, xmm2
jmp 0x10487aff
mov edx, esi
mov edi, 8
nop
mov eax, dword [edx]
lea edx, [edx + 4]
cmp ecx, eax
cmovb eax, ecx
mov ecx, eax
sub edi, 1
jne 0x10487ae0
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x78]
mov edi, dword [0x10b47804]
add eax, 0x20
add esi, 0x20
sub edx, 1
mov dword [esp + 0x54], eax
mov dword [esp + 0x78], edx
jne 0x10487a90
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x88]
lea eax, [edx - 6]
cmp eax, 9
ja case.0x10487b34.7
movzx eax, byte [eax + 0x10489fa0]
jmp dword [eax*4 + 0x10489f8c]
cmp ecx, 0x4d98
jmp 0x10487b59
cmp ecx, 0x1366
jmp 0x10487b59
cmp ecx, 0x401
jmp 0x10487b59
cmp ecx, 0x100
setb al
test al, al
jne 0x1048925c
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x30], 1
test eax, eax
jne 0x10487ce0
cmp dword [edi + 0x141f0], eax
jne 0x10487ce0
cmp dword [edx + 0x3ede8], 1
jne 0x10487bbe
cmp dword [esp + 0xd58], eax
je 0x10487bbe
cmp byte [edi + 0x2438e], 1
jne 0x10487bae
mov byte [edi + 0x24392], 1
cmp byte [edi + 0x2438f], 1
jne 0x10487bbe
mov byte [edi + 0x24393], 1
cmp dword [esp + 0xd4c], 0
je 0x10487ce0
mov eax, dword [edi + 0x14d4c]
mov dword [esp + 0x40], eax
cmp eax, 0x7fffffff
je 0x10487ce0
mov ecx, dword [edi + 0x14d6c]
mov dword [esp + 0x48], ecx
cmp ecx, 0x7fffffff
je 0x10487c42
movsx eax, word [esp + 0x82c]
cdq
mov edi, eax
movsx eax, word [esp + 0x82e]
xor edi, edx
sub edi, edx
cdq
xor eax, edx
sub eax, edx
add edi, eax
movsx eax, word [esp + 0x84c]
cdq
mov ecx, eax
movsx eax, word [esp + 0x84e]
xor ecx, edx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x14]
add ecx, eax
mov eax, dword [esp + 0x40]
cmp ecx, edi
mov edi, dword [esp + 0x2c]
cmovl eax, dword [esp + 0x48]
lea ecx, [esp + 0x444]
push ecx
push dword [edi + 0x243a4]
push eax
push dword [esp + 0x28]
push edi
push edx
call fcn.1048d3e0
mov eax, dword [edi + 0x10b0]
add esp, 0x18
mov eax, dword [eax]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x68]
mov cl, byte [eax*2 + 0x10a1513d]
or dh, 0xff
mov dl, byte [eax*2 + 0x10a1513c]
mov byte [esp + 0x23], cl
mov byte [esp + 0x3c], dl
mov byte [esp + 0xa8], dh
cmp dword [edi + 0x243b0], 0
je 0x10487d87
cmp dl, 1
jne 0x10487d87
cmp cl, 0xd
jne 0x10487d65
mov eax, dword [esp + 0x82c]
cmp eax, dword [edi + 0x243b4]
jne 0x10487d87
jmp 0x10488122
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov eax, dword [edi + 0x10b0]
mov eax, dword [eax]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x68]
jmp 0x10487cf9
mov eax, dword [edi + 0x10b0]
mov eax, dword [eax]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x68]
cmp eax, 0xc
jl 0x10487c6f
push dword [esp + 0x1c]
add eax, 0xfffffff4
lea ecx, [esp + 0x2b]
push ecx
push dword [esp + 0xf8]
push eax
lea eax, [esp + 0xd58]
push eax
lea eax, [esp + 0x69c]
push eax
lea eax, [esp + 0xc0]
push eax
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x43]
push eax
lea eax, [esp + 0x42c]
push eax
push edi
push edx
call fcn.1048d820
add esp, 0x30
test eax, eax
je 0x10487de3
mov dl, byte [esp + 0x3c]
mov dh, byte [esp + 0xa8]
mov cl, byte [esp + 0x23]
mov dword [esp + 0x30], 0
jmp 0x10487c8f
cmp cl, 0xe
jne 0x10487d7e
mov eax, dword [esp + 0x84c]
cmp eax, dword [edi + 0x243b4]
jne 0x10487d87
jmp 0x10488122
cmp cl, 0x10
je 0x10488122
cmp dword [esp + 0x30], 0
je 0x10487da1
movsx eax, dl
movzx ecx, cl
lea eax, [esp + eax + 0xd68]
cmp byte [eax + ecx*8], 0
jne 0x10487de3
cmp byte [esp + 0x74], 0
mov cl, byte [esp + 0x23]
jne 0x10487db1
cmp cl, 0xf
je 0x10487de3
mov eax, dword [esp + 0x7c]
mov byte [eax + 5], cl
mov byte [eax + 0x14], dl
mov byte [eax + 0x15], dh
movsx eax, dl
cmp dword [esp + eax*4 + 0xd48], 0
je 0x10487de3
cmp dword [edi + 0x141f0], 0
je 0x10487df6
cmp cl, 0xd
jne 0x10487dec
cmp dword [esp + eax*4 + 0x828], 0
je 0x10487df1
mov edx, dword [esp + 0x14]
jmp 0x1048923b
cmp cl, 0xf
jne 0x10487de3
cmp dl, 1
jne 0x10487de3
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x5d1a3], 0
je 0x10487e51
cmp dword [esp + 0x30], 0
jne 0x10487e51
lea eax, [esp + 0x308]
push eax
lea eax, [esp + 0x5ec]
push eax
lea eax, [esp + 0xd70]
push eax
lea eax, [esp + 0x694]
push eax
push dword [esp + 0xb8]
push dword [esp + 0x50]
push dword [esp + 0x3b]
call fcn.1048c620
add esp, 0x1c
test al, al
jne 0x10487de3
mov dl, byte [esp + 0x3c]
mov eax, dword [esp + 0x14]
mov cl, byte [esp + 0x23]
mov eax, dword [eax]
mov dword [esp + 0xac], 0
cmp dword [eax + 0xc4a8], 0
je 0x10487ecb
mov eax, dword [esp + 0xf4]
mov edi, dword [esp + 0x2c]
cmp dword [eax], 0
jle 0x10487ecb
cmp dl, 1
jne 0x10487e84
cmp dword [eax + 0x2c], 0
jne 0x10487e9c
jmp 0x10487ecb
cmp dl, 4
jne 0x10487e91
cmp dword [eax + 0x30], 0
jne 0x10487e9c
jmp 0x10487ecb
cmp dl, 7
jne 0x10487ecb
cmp dword [eax + 0x34], 0
je 0x10487ecb
mov dword [esp + 0xac], 1
movsx eax, dl
cmp cl, 0x10
jne 0x10487eb8
mov dword [esp + eax*4 + 0x888], esi
jmp 0x10487ecb
movzx ecx, cl
lea eax, [eax + ecx*8]
cmp dword [esp + eax*4 + 0x688], esi
jne 0x10487de3
mov esi, dword [esp + 0x14]
push 5
push dword [esp + 0xd4]
add esi, 0x3d230
push esi
call fcn.10075610
mov dl, byte [esp + 0x48]
add esp, 0xc
test eax, eax
je 0x10487f07
mov ecx, dword [esp + 0xb0]
add ecx, ecx
movsx ax, dl
cmp word [esi + ecx*8 + 0xe], ax
jne 0x10487de3
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x3ede8], 1
jne 0x10487f83
cmp dword [eax + 0x5d0d4], 0
mov dh, byte [esp + 0x23]
je 0x10487f49
movzx ecx, dh
movsx eax, dl
lea eax, [eax + ecx*8]
cmp dword [esp + eax*4 + 0x688], 0
je 0x104883cd
cmp dword [edi + 0x14d10], 0
je 0x10487de3
mov eax, dword [esp + 0x14]
cmp dh, 0x10
jne 0x10487f5b
cmp dword [edi + 0x243a4], 0x64
jb 0x10487de3
cmp dl, 1
jle 0x10487f83
cmp dword [edi + 0x243a4], 0
jne 0x10487f83
cmp byte [edi + 0x24392], 1
je 0x10487de3
cmp byte [edi + 0x24393], 1
je 0x10487de3
push dword [eax + 0x5d130]
push dword [esp + 0xb8]
push dword [edi + 0x161b0]
push dword [esp + 0x28]
push dword [esp + 0x4c]
push dword [esp + 0x37]
call fcn.1048dbb0
add esp, 0x18
test eax, eax
jne 0x10487de3
mov eax, dword [esp + 0xa4]
mov dl, byte [esp + 0x23]
test eax, eax
je 0x10487fe7
mov al, byte [esp + 0x3c]
cmp al, 1
je 0x10487fe0
movzx ecx, dl
movsx eax, al
lea eax, [eax + ecx*8]
cmp dword [esp + eax*4 + 0x688], 0
jne 0x10487de3
mov eax, dword [esp + 0xa4]
cmp dword [edi + 0x14d10], 4
je 0x10488004
cmp dword [esp + 0x1c], 0xc
jl 0x10488004
test eax, eax
je 0x10488004
cmp dl, 0x10
je 0x10487de3
push 5
push dword [esp + 0xd4]
push esi
call fcn.10075610
mov esi, dword [esp + 0x20]
add esp, 0xc
mov dl, byte [esp + 0x3c]
test eax, eax
jne 0x10488061
cmp dword [esi + 0x5d09c], eax
jle 0x10488061
movsx eax, dl
mov eax, dword [edi + eax*4 + 0x14d20]
cmp eax, 0x7fffffff
je 0x10488061
cmp dl, 1
je 0x10488061
cdq
cmp edx, dword [esp + 0xcc]
jg 0x10489239
jl 0x1048805d
cmp eax, dword [esp + 0xdc]
ja 0x10489239
mov dl, byte [esp + 0x3c]
mov cl, byte [esp + 0x23]
cmp cl, 0xe
jne 0x10488094
movsx eax, dl
mov ecx, dword [edi + eax*4 + 0x14d68]
cmp ecx, 0x7fffffff
je 0x10488090
movsx eax, dl
mov eax, dword [edi + eax*4 + 0x14d48]
add eax, eax
cmp ecx, eax
jg 0x10487de3
mov cl, byte [esp + 0x23]
cmp dword [esp + 0x30], 0
je 0x10488122
xor eax, eax
movzx ecx, cl
cmp dword [esi + 0x5d130], eax
setne al
push eax
movzx eax, byte [esp + 0x24d]
push eax
push dword [esp + 0x2fc]
imul eax, dword [esp + 0x28], 0x2a4
push dword [esp + 0x2fc]
add eax, 0x17bc4
add eax, edi
push eax
imul eax, dword [esp + 0xc4], 0x16
add eax, dword [esp + 0x30]
imul eax, eax, 0x2a4
add eax, 0x3f6e4
add eax, esi
push eax
push dword [esi + 0x5cbac]
movsx eax, dl
lea eax, [eax + ecx*8]
push dword [esp + eax*4 + 0x6a4]
push dword [esp + 0x5c]
push dword [esp + 0x47]
call fcn.1048dc20
mov edi, dword [esp + 0x54]
add esp, 0x28
test eax, eax
jne 0x10487de3
mov dl, byte [esp + 0x3c]
mov dh, byte [esp + 0xa8]
movsx eax, dl
mov esi, eax
shl esi, 4
sub esi, eax
cmp dword [esp + 0x30], 0
movups xmm0, xmmword [esp + esi*4 + 0x408]
mov eax, dword [esp + esi*4 + 0x418]
movups xmmword [edi + 0x110], xmm0
mov dword [edi + 0x120], eax
jne 0x1048817c
movsx eax, dh
mov ecx, eax
shl ecx, 4
sub ecx, eax
movups xmm0, xmmword [esp + ecx*4 + 0x408]
mov eax, dword [esp + ecx*4 + 0x418]
movups xmmword [edi + 0x124], xmm0
mov dword [edi + 0x134], eax
cmp dword [esp + 0x30], 0
movups xmm0, xmmword [esp + esi*4 + 0x41c]
mov eax, dword [esp + esi*4 + 0x42c]
movups xmmword [edi + 0x648], xmm0
mov dword [edi + 0x658], eax
jne 0x104881c5
movsx eax, dh
mov ecx, eax
shl ecx, 4
sub ecx, eax
movups xmm0, xmmword [esp + ecx*4 + 0x41c]
mov eax, dword [esp + ecx*4 + 0x42c]
movups xmmword [edi + 0x65c], xmm0
mov dword [edi + 0x66c], eax
movups xmm0, xmmword [esp + esi*4 + 0x430]
mov eax, dword [esp + esi*4 + 0x440]
mov esi, dword [esp + 0x30]
movups xmmword [edi + 0xb80], xmm0
mov dword [edi + 0xb90], eax
test esi, esi
jne 0x1048820f
movsx eax, dh
mov ecx, eax
shl ecx, 4
sub ecx, eax
movups xmm0, xmmword [esp + ecx*4 + 0x430]
mov eax, dword [esp + ecx*4 + 0x440]
movups xmmword [edi + 0xb94], xmm0
mov dword [edi + 0xba4], eax
mov eax, dword [esp + 0x44]
mov byte [eax + 0x14], dl
mov byte [eax + 0x15], dh
cmp dl, 1
jl 0x1048841e
mov al, dl
mov cl, dl
dec al
cmp al, 7
jbe 0x10488420
xor eax, eax
mov edi, dword [esp + 0xe0]
mov dword [edi + 0x1000], eax
cmp dh, 1
jl 0x10488449
mov al, dh
mov cl, dh
dec al
cmp al, 7
jbe 0x1048844b
xor eax, eax
mov dword [edi + 0x1004], eax
movsx eax, dl
cmp byte [esp + eax + 0xe30], 0
je 0x10488278
lea eax, [esp + 0x230]
mov dword [edi + 0x1000], eax
test esi, esi
jne 0x10488296
movsx eax, dh
cmp byte [esp + eax + 0xe30], 0
je 0x10488296
lea eax, [esp + 0x230]
mov dword [edi + 0x1004], eax
mov edx, dword [esp + 0xec]
lea esi, [esp + 0x120]
mov ecx, 0x2b
mov dword [esp + 0x8c], 0xffffffff
lea edi, [esp + 0xe3c]
mov dword [esp + 0x90], 0
rep movsd dword es:[edi], dword [esi]
mov eax, dword [edx + 0xfd0]
mov edi, dword [esp + 0x2c]
mov ecx, dword [edx]
mov edx, dword [edx + 4]
mov esi, dword [eax]
cmp dword [edi + 0x243b0], 0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x84], esi
mov dword [esp + 0x50], ecx
mov dword [esp + 0x94], edx
movzx eax, byte [eax + 0x10a16350]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x70], 0xffffffff
mov dword [esp + 0x1d0], htons
mov eax, dword [eax + 0x1c8]
mov dword [esp + 0x48], eax
mov al, byte [esi + 0x14]
mov ah, byte [esi + 0x15]
mov byte [esp + 0x28], al
mov byte [esp + 0x1b], ah
movsx esi, al
movzx eax, byte [esp + 0x23]
mov dword [esp + 0x1d8], 0xffffffff
mov dword [esp + 0x1dc], htons
mov dword [esp + 0x1e0], 0xffffffff
lea eax, [esi + eax*8]
mov dword [esp + 0x1e4], htons
mov dword [esp + 0x4c], eax
mov dword [esp + 0x1e8], 0xffffffff
mov dword [esp + 0x1ec], htons
mov byte [esp + 0x1f0], 0
mov dword [esp + 0x1d4], 0
je 0x10488474
cmp byte [esp + 0x23], 0x10
jne 0x104884c3
cmp byte [esp + 0x28], 1
jne 0x1048847b
mov eax, dword [edi + 0x243b4]
mov dword [esp + 0x88c], eax
jmp 0x104884c3
cmp dword [edi + 0x243a8], 0
jne 0x10487f45
cmp dl, 1
jne 0x10487f45
cmp byte [edi + 0x2438c], 0
jne 0x104883f5
cmp byte [edi + 0x2438d], 0
je 0x10488408
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x5cbd8], 0
je 0x10487f49
jmp 0x1048840c
mov eax, dword [esp + 0x14]
cmp dword [edi + 0x243a4], 0
je 0x10487de3
jmp 0x10487f49
mov cl, 1
movsx eax, cl
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx + eax*4 + 0xd8]
cmp eax, 0xffffffff
je 0x10488230
shl eax, 4
add eax, 0x10c
add eax, ecx
jmp 0x10488232
mov cl, 1
movsx eax, cl
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx + eax*4 + 0xd8]
cmp eax, 0xffffffff
je 0x10488256
shl eax, 4
add eax, 0x10c
add eax, ecx
jmp 0x10488258
cmp byte [esp + 0x23], 0x10
jne 0x104884c3
cmp dword [esp + 0xac], 0
jne 0x104884c3
lea eax, [esp + 0x2e0]
push eax
lea eax, [esp + 0x80]
push eax
push edx
push ecx
push dword [esp + 0x2c]
lea eax, [esp + 0x69c]
push dword [esp + 0xf8]
push dword [esp + 0x40]
push eax
push edi
push dword [esp + 0x38]
call fcn.1048d1a0
add esp, 0x28
test eax, eax
jne 0x10487de3
mov ch, byte [esp + 0x23]
mov cl, 0xd
nop dword [eax]
cmp cl, ch
je 0x10488503
cmp dword [esp + 0x30], 0
je 0x10488503
movzx eax, cl
lea edx, [esi + eax*8]
cmp byte [esp + edx + 0xd68], 0
je 0x10488503
mov eax, dword [esp + 0x4c]
mov eax, dword [esp + eax*4 + 0x688]
cmp eax, dword [esp + edx*4 + 0x688]
je 0x10487de3
inc cl
cmp cl, 0x10
jbe 0x104884d0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x4c]
cmp ch, 0x10
jne 0x10488574
cmp dword [edx + 0x3ede8], 1
jne 0x10488574
cmp dword [edx + 0x91588], 0
jne 0x10488574
cmp dword [edx + 0x5d0d4], 0
je 0x10488574
cmp dword [esp + eax*4 + 0x688], 0
jne 0x10488574
cmp byte [esp + 0x28], 1
jne 0x10488574
cmp dword [edi + 0x243a8], 0
jne 0x10488574
cmp byte [edi + 0x2438c], 0
jne 0x1048855e
cmp byte [edi + 0x2438d], 0
je 0x10488567
cmp dword [edx + 0x5cbd8], 0
je 0x10488574
cmp dword [edi + 0x243a4], 0
je 0x1048923b
cmp dword [esp + 0x30], 0
mov esi, dword [esp + 0x84]
mov byte [esi + 5], ch
mov eax, dword [esp + eax*4 + 0x688]
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], 0
jne 0x104885ab
movsx eax, byte [esp + 0x1b]
movzx ecx, ch
lea eax, [eax + ecx*8]
mov eax, dword [esp + eax*4 + 0x688]
mov dword [esi + 0x10], eax
cmp dword [esp + 0x58], 0
je 0x10488611
cmp dword [esp + 0x6c], 0
jne 0x104885c6
lea eax, [esp + 0xf0c]
mov dword [esp + 0x6c], eax
jmp 0x10488611
xor ecx, ecx
lea eax, [esp + 0xef0]
nop
cmp dword [eax], 0
je 0x104885e3
inc ecx
add eax, 0xc
cmp ecx, 3
jl 0x104885d0
or ecx, 0xffffffff
jmp 0x104885f1
lea eax, [ecx + ecx*2]
mov dword [esp + eax*4 + 0xef0], 1
lea eax, [ecx + ecx*2]
lea eax, [esp + eax*4 + 0xee8]
mov dword [esp + 0x6c], eax
mov eax, dword [eax]
mov dword [edi + 0xfc], eax
mov eax, dword [esp + 0x40]
mov dword [edi + 0x10c], eax
mov byte [esi + 0x1c], 0
cmp byte [edx + 0x3ee31], 0
je 0x1048862d
push esi
push edi
push edx
call fcn.1048a540
mov edx, dword [esp + 0x20]
add esp, 0xc
cmp byte [edx + 0x5d19c], 0
mov eax, dword [esp + 0x30]
je 0x1048868c
test eax, eax
jne 0x1048868c
mov dh, byte [esp + 0x28]
cmp dword [esp + 0xa0], eax
je 0x10488690
movzx eax, byte [esp + 0x23]
mov dl, byte [eax + 0x10a169e4]
movzx eax, byte [esp + 0x23]
movzx ecx, byte [eax + 0x10a169c8]
movsx eax, dh
lea eax, [eax + ecx*8]
movzx ecx, dl
mov esi, dword [esp + eax*4 + 0x448]
movsx eax, byte [esp + 0x1b]
lea eax, [eax + ecx*8]
mov eax, dword [esp + eax*4 + 0x448]
cmp esi, eax
cmovae esi, eax
mov eax, dword [esp + 0x30]
jmp 0x10488694
mov dh, byte [esp + 0x28]
mov esi, dword [esp + 0x70]
mov ecx, dword [esp + 0x84]
test byte [ecx + 0xc], 7
jne 0x104886ab
test byte [ecx + 0xe], 7
jne 0x104886ab
xor dl, dl
jmp 0x104886ad
mov dl, 1
cmp dword [esp + 0x64], 2
jne 0x104886bb
mov eax, 1
jmp 0x104886e7
cmp dword [esp + 0x64], 0
je 0x104886e5
cmp dword [esp + 0xac], 0
jne 0x104886e5
test eax, eax
je 0x104886e5
cmp dh, 1
je 0x104886de
cmp dword [edi + 0x161b0], 0
jne 0x104886e5
mov eax, 1
jmp 0x104886e7
xor eax, eax
test dl, dl
je 0x1048875d
test eax, eax
je 0x1048875d
push dword [esp + 0x30]
lea eax, [esp + 0x90]
push dword [esp + 0x2b8]
push dword [esp + 0x2b8]
push dword [esp + 0xac]
push eax
lea eax, [esp + 0xa4]
push eax
lea eax, [esp + 0x84]
push eax
push dword [esp + 0x74]
lea eax, [esp + 0xf08]
push dword [esp + 0x3c]
push eax
push dword [esp + 0xbc]
lea eax, [esp + 0xe68]
push dword [esp + 0x7c]
push eax
lea eax, [esp + 0x2ec]
push eax
push edi
push dword [esp + 0x50]
call fcn.1048c730
add esp, 0x40
jmp 0x1048892f
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x3ee31], 0
je 0x104887d3
mov dh, byte [esp + 0x23]
cmp dh, 0x10
jne 0x104887d3
push dword [esp + 0x2b4]
lea ecx, [esp + 0x80]
push dword [esp + 0x2b4]
push ecx
push dword [esp + 0xac]
lea ecx, [esp + 0xa0]
push ecx
push dword [esp + 0x30]
lea ecx, [esp + 0x2d0]
push dword [esp + 0xac]
push dword [esp + 0x6c]
push ecx
push edi
push eax
call fcn.1048cb90
mov eax, dword [esp + 0xb0]
add esp, 0x2c
mov ecx, dword [esp + 0x4c]
mov eax, dword [eax + 0xc]
mov dword [esp + ecx*4 + 0x688], eax
jmp 0x1048892f
mov eax, dword [esp + 0x48]
cmp eax, 4
jne 0x104887e0
xor eax, eax
jmp 0x104887f1
movzx ecx, ax
mov eax, ecx
shl eax, 0x10
or eax, ecx
mov ecx, dword [esp + 0x84]
cmp dword [esp + 0xac], 0
mov dword [ecx + 0x18], eax
je 0x10488805
mov dword [ecx + 0x18], 0
test dl, dl
je 0x10488827
cmp dword [esp + 0xe8], 0
je 0x10488827
mov eax, dword [esp + 0xd4]
shl eax, 0x10
or eax, dword [esp + 0xd4]
mov dword [ecx + 0x18], eax
cmp dword [esp + 0x30], 0
je 0x1048887a
push dword [edi + 0x11c]
lea eax, [esp + 0x20c]
push dword [edi + 0x118]
push dword [edi + 0x10e0]
push eax
lea eax, [esp + 0xe4c]
push eax
lea eax, [ecx + 0xc]
push eax
call fcn.1048b210
lea eax, [esp + 0x220]
push eax
lea eax, [esp + 0xe58]
push eax
lea eax, [edi + 0xe0]
push eax
call fcn.10115690
add esp, 0x24
jmp 0x104888a5
push 0
push 0
push dword [esp + 0x24]
lea eax, [edi + 0xe0]
push 0
push dword [esp + 0xa4]
push dword [esp + 0x64]
push eax
push dword [esp + 0xf4]
call fcn.101152f0
add esp, 0x20
cmp dword [esp + 0xa0], 0
je 0x104888fd
push esi
lea eax, [esp + 0x90]
push eax
push dword [esp + 0x2bc]
lea eax, [esp + 0x9c]
push dword [esp + 0x2bc]
push 0
push eax
lea eax, [esp + 0x2d0]
push eax
lea eax, [edi + 0xe0]
push eax
push edi
push dword [esp + 0xb8]
push dword [esp + 0x78]
push dword [esp + 0x48]
push dword [esp + 0x44]
call fcn.1048b4f0
add esp, 0x34
jmp 0x1048892f
lea eax, [esp + 0x90]
push eax
push 0
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x2c4]
push eax
lea eax, [edi + 0xe0]
push eax
push edi
push dword [esp + 0x34]
push dword [esp + 0x30]
call fcn.1048b360
add esp, 0x20
cmp dword [esp + 0x30], 0
je 0x1048896d
mov dl, byte [esp + 0x28]
movzx ecx, byte [esp + 0x23]
movsx eax, dl
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x8c]
mov dword [esp + eax*4 + 0x448], ecx
mov eax, dword [esp + 0x4c]
cmp dword [esp + eax*4 + 0x688], 0
jne 0x104889a5
movsx eax, dl
mov dword [esp + eax*4 + 0x628], ecx
jmp 0x104889a1
cmp dword [esp + 0x8c], esi
jbe 0x1048899d
cmp dword [esp + 0x58], 0
je 0x10487de3
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x14]
test eax, eax
je 0x1048923b
mov dword [eax + 8], 0
jmp 0x1048923b
mov dl, byte [esp + 0x28]
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x2d0]
cmp dl, 1
mov edx, dword [esp + 0x2d4]
mov dword [esp + 0x54], edx
mov dword [esp + 0x40], esi
jne 0x104889ec
cmp dword [esp + eax*4 + 0x688], 0
jne 0x104889ec
mov eax, dword [esp + 0x1c]
movzx ecx, byte [eax + 0x10a15104]
movzx eax, byte [eax + 0x10a150f4]
add ecx, eax
mov eax, esi
call fcn.10511c50
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x5d184]
test ecx, ecx
je 0x10488a8a
mov eax, dword [esp + 0x1c]
movzx edx, byte [eax + 0x10a16380]
cmp ecx, 4
jne 0x10488a2e
mov al, byte [esp + 0x23]
cmp al, 0x10
je 0x10488a1a
cmp al, 0xd
jne 0x10488a2e
movsd xmm0, qword [edx*8 + str.333333]
movsd qword [esp + 0x98], xmm0
jmp 0x10488a47
lea eax, [edx + ecx*4]
movsd xmm0, qword [eax*8 + 0x10a164c0]
movsd qword [esp + 0x98], xmm0
test ecx, ecx
jle 0x10488a8a
mov edx, dword [esp + 0x54]
mov ecx, esi
call fcn.10511ed0
mulsd xmm0, qword [esp + 0x98]
mov edx, dword [esp + 0x2b4]
mov ecx, dword [esp + 0x2b0]
movsd qword [esp + 0x98], xmm0
call fcn.10511ed0
movsd xmm1, qword [esp + 0x98]
comisd xmm1, xmm0
ja 0x10488976
mov eax, dword [edi + 0x10bc]
mov ecx, dword [edi + 0x10b8]
test eax, eax
je 0x10488aa3
movzx edx, byte [eax + 0x88]
jmp 0x10488aa5
xor edx, edx
test ecx, ecx
je 0x10488ab2
movzx eax, byte [ecx + 0x88]
jmp 0x10488ab4
xor eax, eax
add eax, edx
cmp dword [esp + 0x90], 0
lea edx, [edi + 0x31e8]
mov ecx, dword [edx + eax*8 + 0x4a54]
mov eax, dword [edx + eax*8 + 0x4a50]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x48], eax
je 0x10488b16
mov eax, dword [esp + 0x40]
mov esi, ecx
mov ecx, dword [esp + 0x54]
shld ecx, eax, 4
mov byte [esp + 0x2d8], 1
shl eax, 4
mov dword [esp + 0x70], ecx
mov dword [esp + 0xb8], eax
mov dword [esp + 0x2c0], eax
mov dword [esp + 0x2c4], ecx
jmp 0x10488e01
mov eax, dword [esp + 0x84]
movzx eax, byte [eax + 0x89]
push eax
push dword [esp + 0x20]
lea eax, [esp + 0xf20]
push eax
lea eax, [esp + 0x2c4]
push eax
push edi
call fcn.10492530
add esp, 0x14
cmp byte [esp + 0x2d8], 0
jne 0x10488c00
mov esi, dword [esp + 0x2b8]
mov eax, esi
imul dword [edi + 0x31cc]
add eax, 0x100
adc edx, 0
shrd eax, edx, 9
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x2c0]
mov ecx, eax
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x2c4]
mov dword [esp + 0x70], eax
shld eax, ecx, 7
sar edx, 9
shl ecx, 7
add dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x2d0]
adc edx, eax
mov eax, dword [esp + 0x2d4]
shld eax, ecx, 7
shl ecx, 7
cmp edx, eax
jg 0x10488bc1
jl 0x10488bbb
cmp dword [esp + 0x78], ecx
jae 0x10488bc1
add esi, dword [esp + 0x48]
jmp 0x10488c36
movups xmm0, xmmword [esp + 0x2b8]
mov eax, dword [esp + 0x48]
add eax, esi
movups xmmword [esp + 0x1d0], xmm0
mov dword [esp + 0x1d0], eax
movups xmm0, xmmword [esp + 0x2c8]
movups xmmword [esp + 0x1e0], xmm0
movq xmm0, qword [esp + 0x2d8]
movq qword [esp + 0x1f0], xmm0
mov eax, dword [esp + 0x2d0]
mov ecx, dword [esp + 0x2d4]
mov esi, dword [esp + 0x98]
mov byte [esp + 0x2d8], 1
mov dword [esp + 0xb8], eax
mov dword [esp + 0x70], ecx
mov dword [esp + 0x2c0], eax
mov dword [esp + 0x2c4], ecx
mov dl, byte [edi + 0x24392]
mov dword [esp + 0x2b8], esi
test dl, dl
jne 0x10488c53
cmp byte [edi + 0x24393], dl
je 0x10488e01
mov eax, dword [edi + 0x62c]
mov ecx, dword [esp + 0x1c]
lea ecx, [eax + ecx*2]
mov eax, dword [edi + 0x630]
lea eax, [eax + ecx*2]
mov esi, dword [eax*4 + 0x106341d0]
test dl, dl
je 0x10488c9f
push 1
push 1
push dword [esp + 0x24]
lea eax, [edi + 0xe0]
push 0
push dword [esp + 0xa4]
push dword [esp + 0x64]
push eax
push dword [esp + 0xf4]
call fcn.101152f0
add esp, 0x20
cmp byte [edi + 0x24393], 0
je 0x10488cd3
push 2
push 2
push dword [esp + 0x24]
lea eax, [edi + 0xe0]
push 0
push dword [esp + 0xa4]
push dword [esp + 0x64]
push eax
push dword [esp + 0xf4]
call fcn.101152f0
add esp, 0x20
push 2
push 1
lea eax, [esp + 0x210]
push eax
lea eax, [edi + 0xe0]
push eax
push edi
push esi
push dword [esp + 0x2c]
call fcn.10493f30
mov esi, dword [esp + 0x230]
add esp, 0x1c
mov ecx, edx
mov edx, dword [esp + 0x210]
cmp esi, dword [edi + 0x2439c]
jg 0x10488d22
jl 0x10488d16
cmp edx, dword [edi + 0x24398]
jae 0x10488d22
mov dword [edi + 0x24398], edx
mov dword [edi + 0x2439c], esi
add dword [esp + 0x2d0], eax
adc dword [esp + 0x2d4], ecx
cmp byte [esp + 0x2d8], 0
je 0x10488d83
cmp byte [esp + 0x228], 0
jne 0x10488d83
cmp dword [esp + 0x1d0], 0x7fffffff
je 0x10488d83
movups xmm0, xmmword [esp + 0x1d0]
movups xmmword [esp + 0x2b8], xmm0
movups xmm0, xmmword [esp + 0x1e0]
movups xmmword [esp + 0x2c8], xmm0
movq xmm0, qword [esp + 0x1f0]
movq qword [esp + 0x2d8], xmm0
cmp dword [esp + 0x30], 0
je 0x10488d9f
movzx ecx, byte [esp + 0x23]
movsx eax, byte [esp + 0x28]
lea eax, [eax + ecx*8]
mov dword [esp + eax*8 - 0x38], edx
mov dword [esp + eax*8 - 0x34], esi
mov esi, dword [esp + 0x2b8]
mov eax, dword [esp + 0x2c0]
add esi, dword [esp + 0x208]
add eax, edx
mov dword [esp + 0xb8], eax
mov dword [esp + 0x2c0], eax
mov eax, dword [esp + 0x2c4]
adc eax, dword [esp + 0x214]
cmp byte [esp + 0x2d8], 0
mov dword [esp + 0x70], eax
mov dword [esp + 0x2c4], eax
je 0x10488df9
cmp byte [esp + 0x228], 0
mov byte [esp + 0x2d8], 1
jne 0x10488e01
mov byte [esp + 0x2d8], 0
mov dl, byte [esp + 0x23]
add esi, dword [esp + 0x7c]
cmp dword [esp + 0x30], 0
mov dword [esp + 0x50], edx
mov byte [esp + 0x38], dl
mov dword [esp + 0x2b8], esi
jne 0x10488e98
mov eax, dword [esp + 0x84]
lea esi, [eax + 0x14]
push esi
call fcn.1048a4e0
movsx eax, al
add esp, 4
cmp byte [esi + 1], 0
movzx eax, word [edi + eax*2 + 0x3138]
jle 0x10488e6b
mov ecx, eax
sar eax, 4
and ecx, 7
and eax, 0xf
mov edx, ecx
cmp ecx, 4
jb 0x10488e5a
mov edx, 4
mov ecx, eax
shr ecx, 1
lea eax, [edx + ecx*4]
add eax, ecx
movzx eax, word [eax*2 + 0x10a75d50]
push eax
push dword [esp + 0x27]
lea eax, [edi + 0x31e8]
push eax
call fcn.10167560
mov esi, dword [esp + 0x2c4]
add esp, 0xc
mov dl, byte [esp + 0x28]
add esi, eax
mov dword [esp + 0x2b8], esi
jmp 0x10488f8d
cmp dl, 0xf
je 0x10488f2e
mov eax, dword [esp + 0x4c]
movsx ecx, byte [esp + 0x28]
mov eax, dword [esp + eax*4 + 0x688]
cmp eax, dword [esp + ecx*4 + 0x868]
jne 0x10488f2e
mov eax, dword [esp + ecx*4 + 0xd08]
mov dword [esp + 0x48], eax
movsx eax, byte [esp + 0x28]
movzx ecx, dl
lea eax, [eax + ecx*8]
mov ecx, dword [esp + eax*4 + 0xb28]
add ecx, dword [esp + 0x7c]
mov dword [esp + 0x98], ecx
cmp dl, 0x10
je 0x10488eec
cmp dl, 0xe
jne 0x10488f17
push dword [esp + 0x28]
lea eax, [edi + 0x6f10]
push eax
lea ecx, [edi + 0x2c70]
push ecx
push 0
push 0x10
call fcn.1048ada0
mov ecx, dword [esp + 0xac]
add esp, 0x14
mov edx, dword [esp + 0x50]
add ecx, eax
cmp ecx, dword [esp + 0x48]
mov eax, 0xf
movzx edx, dl
cmovg edx, eax
mov dword [esp + 0x50], edx
mov byte [esp + 0x38], dl
movzx ecx, dl
mov dl, byte [esp + 0x28]
movsx eax, dl
lea eax, [eax + ecx*8]
add esi, dword [esp + eax*4 + 0xb28]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x2b8], esi
cmp dword [esp + eax*4 + 0x688], 0
jne 0x10488f8d
mov ecx, dword [esp + 0x8c]
cmp ecx, 0xffffffff
jae 0x10488f8d
movsx eax, dl
mov dword [esp + eax*4 + 0x628], ecx
mov eax, dword [esp + 0x2c4]
mov esi, dword [esp + 0x2b8]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x2c0]
mov dword [esp + 0xb8], eax
movsx ecx, dl
add esi, dword [esp + ecx*4 + 0x668]
mov ecx, dword [esp + 0xb8]
mov eax, esi
imul dword [edi + 0x31cc]
mov dword [esp + 0x2b8], esi
mov esi, dword [esp + 0x70]
add eax, 0x100
adc edx, 0
shrd eax, edx, 9
shld esi, ecx, 7
sar edx, 9
shl ecx, 7
add eax, ecx
mov dword [esp + 0x2c8], eax
adc edx, esi
mov dword [esp + 0x2cc], edx
mov edx, dword [esp + 0x14]
cmp dword [edx + 0x3eb3c], 1
jne 0x10489048
cmp dword [esp + 0x30], 0
je 0x10489048
mov eax, dword [esp + 0x50]
sub esp, 0x10
movups xmm0, xmmword [edi + 0x14d10]
movzx ecx, al
movsx eax, byte [esp + 0x38]
lea ecx, [eax + ecx*8]
mov eax, esp
push dword [edi + 0x243a4]
push dword [edx + 0x5ccb4]
movups xmmword [eax], xmm0
movsx eax, word [esp + ecx*4 + 0x6a2]
push eax
movsx eax, word [esp + ecx*4 + 0x6a4]
push eax
push dword [esp + 0x3c]
lea eax, [esp + 0x2dc]
push eax
push dword [esp + 0x60]
lea eax, [edi + 0xe0]
push eax
call fcn.1048c340
add esp, 0x30
mov dl, byte [esp + 0x28]
lea esi, [esp + 0xd68]
movzx ecx, byte [esp + 0x23]
movsx eax, dl
add eax, esi
mov byte [eax + ecx*8], 1
mov eax, dword [esp + 0x50]
movzx esi, al
shl esi, 3
movsx eax, dl
add eax, esi
cmp byte [esp + 0x74], 0
mov dword [esp + 0x98], eax
mov byte [esp + eax + 0xd68], 1
je 0x104890c2
movsx eax, word [esp + eax*4 + 0x68a]
cdq
mov ecx, eax
mov eax, dword [esp + 0x98]
xor ecx, edx
sub ecx, edx
movsx eax, word [esp + eax*4 + 0x688]
cdq
xor eax, edx
sub eax, edx
xor edx, edx
add ecx, eax
mov eax, dword [esp + 0x74]
cmp ecx, 2
movzx eax, al
cmovl eax, edx
mov dl, byte [esp + 0x28]
mov dword [esp + 0x74], eax
cmp dword [edi + 0x243b0], 0
je 0x104890ef
cmp dl, 1
jne 0x104890ef
mov eax, dword [esp + esi*4 + 0x68c]
cmp eax, dword [edi + 0x243b4]
mov eax, 1
mov esi, dword [esp + 0x34]
cmove esi, eax
mov dword [esp + 0x34], esi
jmp 0x104890f3
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x2cc]
cmp eax, dword [esp + 0x2f4]
jg 0x104891f2
jl 0x1048911d
mov eax, dword [esp + 0x2c8]
cmp eax, dword [esp + 0x2f0]
jae 0x104891f2
push dword [esp + 0x54]
movups xmm0, xmmword [esp + 0x2bc]
mov eax, dword [esp + 0x94]
push dword [esp + 0x44]
mov dword [esp + 0x64], eax
lea eax, [esp + 0x1d8]
push dword [esp + 0x40]
movups xmmword [esp + 0x2ec], xmm0
push dword [esp + 0x6c]
movups xmm0, xmmword [esp + 0x2d8]
push eax
lea eax, [edi + 0x23b80]
push eax
push dword [esp + 0x9c]
movups xmmword [esp + 0x30c], xmm0
lea eax, [esp + 0x25c]
movq xmm0, qword [esp + 0x2f4]
push eax
movq qword [esp + 0x320], xmm0
call fcn.1048df80
mov edx, dword [esp + 0x70]
add esp, 0x20
movsx eax, byte [esp + 0x28]
movzx ecx, dl
lea ecx, [eax + ecx*8]
mov eax, dword [esp + ecx*4 + 0x688]
mov dword [esp + ecx*4 + 0x9a8], eax
mov al, byte [esp + 0x1b]
cmp al, 0xff
jle 0x104891cc
movsx eax, al
movzx ecx, dl
lea ecx, [eax + ecx*8]
mov eax, dword [esp + ecx*4 + 0x688]
mov dword [esp + ecx*4 + 0x9a8], eax
cmp dword [esp + 0x58], 0
je 0x10489208
mov eax, dword [esp + 0x240]
test eax, eax
je 0x104891e5
mov dword [eax + 8], 0
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x240], eax
jmp 0x10489208
cmp dword [esp + 0x58], 0
je 0x10489208
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x10489208
mov dword [eax + 8], 0
cmp dword [esp + 0x5c], 0
mov edx, dword [esp + 0x14]
je 0x1048923b
cmp dword [esp + 0x68], 0
jg 0x10489223
cmp dword [edx + 0x5d130], 0
je 0x1048923b
mov byte [edi + 0x23b80], 1
cmp dword [edi + 0x243b0], 0
je 0x10489258
test esi, esi
jne 0x10489258
jmp 0x1048923b
mov edx, esi
mov esi, dword [esp + 0x68]
inc esi
cmp esi, dword [esp + 0xc8]
mov dword [esp + 0x68], esi
mov esi, dword [esp + 0x88]
jl 0x10487a50
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x44]
mov al, byte [esp + 0x244]
mov byte [esi + 5], al
mov al, byte [esp + 0x250]
mov byte [esi + 0x1c], al
movups xmm0, xmmword [esp + 0x254]
movups xmmword [esi + 0x20], xmm0
movups xmm0, xmmword [esp + 0x264]
movups xmmword [esi + 0x30], xmm0
mov eax, dword [esp + 0x274]
mov dword [esi + 0x40], eax
mov al, byte [esp + 0x278]
mov byte [esi + 0x1d], al
mov eax, dword [esp + 0x24c]
mov dword [esi + 0x18], eax
mov al, byte [esp + 0x245]
mov byte [esi + 0x89], al
movzx eax, al
mov cl, al
movzx ecx, cl
imul ecx, ecx, 0x1010101
mov dword [esi + 0x8a], ecx
mov dword [esi + 0x8e], ecx
mov dword [esi + 0x92], ecx
mov dword [esi + 0x96], ecx
mov al, byte [esp + 0x247]
mov byte [esi + 0x14], al
movzx ecx, byte [esp + 0x244]
movsx eax, byte [esp + 0x247]
lea eax, [eax + ecx*8]
mov eax, dword [esp + eax*4 + 0x9a8]
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], 0
mov al, byte [esp + 0x248]
test al, al
jle 0x10489336
mov byte [esi + 0x15], al
movzx ecx, byte [esp + 0x244]
movsx eax, byte [esp + 0x248]
lea eax, [eax + ecx*8]
mov eax, dword [esp + eax*4 + 0x9a8]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x14]
xor edi, edi
mov word [esi + 0x50], 0
mov byte [esi + 0x53], 0
mov esi, dword [esp + 0x2c]
cmp dword [eax + 0x3ede8], 1
jne 0x104893c5
cmp dword [esi + 0x14d10], edi
je 0x104893c5
cmp edx, 6
jg 0x104893c5
movzx eax, byte [edx + 0x10a150f4]
movzx ecx, byte [edx + 0x10a15104]
mov edx, dword [esp + 0x2fc]
add ecx, eax
mov eax, dword [esp + 0x2f8]
call fcn.10511c50
mov esi, dword [esp + 0x14]
mov ecx, 0x30d40
mov edx, dword [esi + 0x5cbd8]
test edx, edx
mov esi, 0x3a98
cmovne ecx, esi
mov esi, dword [esp + 0x2c]
cmp eax, ecx
jbe 0x104893c1
test edx, edx
mov eax, 0xc8
mov ecx, 0x32
cmovne eax, ecx
cmp dword [esi + 0x243a4], eax
mov eax, 1
cmova edi, eax
mov eax, dword [esp + 0x14]
cmp dword [esi + 0x141f0], 0
jne 0x10489414
push dword [esp + 0x60]
lea ecx, [esp + 0x244]
push ecx
lea ecx, [esp + 0x2e8]
push ecx
lea ecx, [esp + 0x78]
push ecx
lea ecx, [esp + 0xef8]
push ecx
lea ecx, [esp + 0x114]
push ecx
push dword [esp + 0x70]
push dword [esp + 0x684]
push dword [esp + 0x7c]
push dword [esp + 0x40]
push esi
push eax
call fcn.104934e0
add esp, 0x30
cmp byte [esi + 0x24392], 0
mov al, byte [esp + 0x244]
mov byte [esp + 0x1b], al
jne 0x10489435
cmp byte [esi + 0x24393], 0
je 0x1048957f
cmp dword [esi + 0x14d10], 0
je 0x1048957f
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0x5cbd8], 0
jne 0x1048957f
mov ecx, 1
mov edi, dword [esp + 0x14]
xor eax, eax
cmp dword [edi + 0x5d174], 0
mov dword [esp + 0x74], eax
je 0x10489479
xor edx, edx
cmp dword [esp + 0x1c], 6
cmovg eax, edx
mov dword [esp + 0x74], eax
mov eax, dword [esi + 0x10b0]
lea edx, [edi + 0x3abf0]
mov edi, dword [esp + 0x1c]
mov eax, dword [eax]
mov dword [esp + 0xb0], eax
movzx eax, byte [edi + 0x10a16350]
mov dword [esp + 0xb4], eax
mov eax, edi
lea edi, [esi + 0xe0]
movzx eax, byte [eax + 0x10a16368]
mov dword [esp + 0xec], eax
mov eax, dword [edx + 0x3bb8]
cmp dword [eax + 0x48], 8
jne 0x10489950
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x3ede8], 1
jne 0x10489950
test ecx, ecx
jne 0x10489950
cmp byte [eax + 0x3ee41], cl
jne 0x10489950
cmp dword [esi + 0x141f0], ecx
jne 0x10489950
mov cl, byte [esp + 0x1b]
mov edx, dword [esp + 0x240]
mov al, cl
sub al, 0xd
cmp al, 0xb
ja 0x1048995b
test edx, edx
je 0x1048995b
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x5d170], 0
je 0x1048954c
cmp dword [esp + 0x1c], 9
jg 0x1048995b
cmp byte [esp + 0x249], 1
je 0x1048995b
cmp dword [esi + 0x243a4], 0xc8
jbe 0x1048995b
lea eax, [esp + 0x1d0]
push eax
call fcn.10454770
add esp, 4
lea eax, [esp + 0xef0]
xor ecx, ecx
cmp dword [eax], 0
je 0x10489622
inc ecx
add eax, 0xc
cmp ecx, 3
jl 0x10489565
or ecx, 0xffffffff
jmp 0x10489630
mov edx, dword [esp + 0x14]
xor ecx, ecx
cmp byte [edx + 0x3eba4], cl
je 0x1048961b
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x44]
cmp byte [esi + 0x3adab], cl
mov edx, dword [edx]
mov esi, dword [esp + 0x2c]
je 0x10489458
cmp byte [edx + 0x10a16350], 0x40
ja 0x10489458
cmp byte [edx + 0x10a16368], 0x40
ja 0x10489458
cmp edx, 3
jl 0x10489458
mov edx, ecx
cmp al, 0xd
jb 0x104895dc
test edi, edi
je 0x10489458
mov eax, dword [esi + 0x243a4]
mov ecx, edx
mov edi, dword [esp + 0x14]
test eax, eax
je 0x1048945c
cmp dword [esi + 0x141f0], ecx
jne 0x1048945c
cmp dword [edi + 0x5cbd8], ecx
jne 0x1048960f
cmp eax, 0x12c
jbe 0x1048945c
mov eax, 1
mov ecx, edx
jmp 0x1048945e
mov edi, edx
jmp 0x1048945c
lea eax, [ecx + ecx*2]
mov dword [esp + eax*4 + 0xef0], 1
lea eax, [ecx + ecx*2]
mov eax, dword [esp + eax*4 + 0xee8]
mov dword [edi + 0x1c], eax
mov eax, dword [esp + 0xb4]
mov dword [edi + 0x2c], eax
mov eax, dword [esp + 0xb0]
movzx eax, byte [eax + 0x89]
push eax
push dword [esp + 0x20]
lea eax, [esp + 0xf20]
push eax
lea eax, [esp + 0x1dc]
push eax
push dword [edx + 4]
push dword [edx]
push esi
call fcn.10492d50
mov eax, dword [esp + 0x1ec]
add esp, 0x1c
mov ecx, dword [esp + 0x1d8]
mov dword [esp + 0x40], eax
imul dword [esi + 0x31cc]
mov dword [esp + 0x48], 1
add eax, 0x100
adc edx, 0
shrd eax, edx, 9
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x1dc]
mov dword [esp + 0x34], eax
shld eax, ecx, 7
sar edx, 9
shl ecx, 7
add dword [esp + 0x5c], ecx
adc edx, eax
mov dword [esp + 0x98], edx
mov dl, byte [esi + 0x24392]
test dl, dl
jne 0x104896f3
cmp byte [esi + 0x24393], dl
jne 0x104896f3
mov al, byte [esp + 0x1f0]
mov ecx, dword [esp + 0x1d8]
mov byte [esp + 0x1b], al
jmp 0x1048984f
mov eax, dword [edi + 0x54c]
mov ecx, dword [esp + 0x1c]
lea ecx, [eax + ecx*2]
mov eax, dword [edi + 0x550]
lea eax, [eax + ecx*2]
mov eax, dword [eax*4 + 0x106341d0]
mov dword [esp + 0xc8], eax
test dl, dl
je 0x10489746
mov eax, dword [esp + 0x14]
push 1
push 1
push dword [esp + 0x24]
add eax, 0x3abf0
push 0
push dword [esp + 0xcc]
push dword [esp + 0xd8]
push edi
push eax
call fcn.101152f0
add esp, 0x20
cmp byte [esi + 0x24393], 0
je 0x1048977a
mov eax, dword [esp + 0x14]
push 2
push 2
push dword [esp + 0x24]
add eax, 0x3abf0
push 0
push dword [esp + 0xcc]
push dword [esp + 0xd8]
push edi
push eax
call fcn.101152f0
add esp, 0x20
push 2
push 1
lea eax, [esp + 0x210]
push eax
push edi
push esi
push dword [esp + 0xdc]
push dword [esp + 0x2c]
call fcn.10493f30
mov edx, dword [esp + 0x230]
add esp, 0x1c
cmp edx, dword [esi + 0x2439c]
jg 0x104897c7
mov eax, dword [esp + 0x210]
jl 0x104897bb
cmp eax, dword [esi + 0x24398]
jae 0x104897c7
mov dword [esi + 0x24398], eax
mov dword [esi + 0x2439c], edx
mov eax, dword [esp + 0x1d0]
add eax, dword [esp + 0x208]
mov ecx, dword [esp + 0x1d8]
add ecx, dword [esp + 0x210]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x1dc]
adc eax, edx
cmp byte [esp + 0x1f0], 0
mov dword [esp + 0x34], eax
je 0x1048980c
cmp byte [esp + 0x228], 0
je 0x1048980c
mov al, 1
jmp 0x1048980e
xor al, al
mov byte [esp + 0x1b], al
mov eax, dword [esp + 0x5c]
or eax, dword [esp + 0x98]
jne 0x1048984f
test edx, edx
jl 0x1048984f
jg 0x1048982e
cmp dword [esp + 0x210], eax
jbe 0x1048984f
cmp dword [esi + 0x243a4], 0xbb8
jae 0x1048984f
xor edx, edx
mov eax, 1
cmp dword [esi + 0x14d10], 3
cmovg eax, edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x40]
imul dword [esi + 0x31cc]
add eax, 0x100
adc edx, 0
shld dword [esp + 0x34], ecx, 7
shrd eax, edx, 9
shl ecx, 7
sar edx, 9
add eax, ecx
adc edx, dword [esp + 0x34]
cmp dword [esp + 0x48], 0
je 0x10489931
cmp edx, dword [esp + 0x2f4]
jg 0x10489931
jl 0x1048989e
cmp eax, dword [esp + 0x2f0]
jae 0x10489931
mov dword [esp + 0x2f0], eax
mov cl, 9
mov al, byte [esp + 0x1b]
mov byte [esp + 0x246], cl
mov dword [esp + 0x2f4], edx
mov byte [esp + 0x249], al
test al, al
jne 0x104898ea
mov ecx, dword [esp + 0x60]
lea eax, [esi + 0x23b81]
push dword [ecx + 0x144]
push eax
push dword [ecx + 0x100]
call fcn.105137c0
mov cl, byte [esp + 0x252]
add esp, 0xc
mov eax, dword [edi + 0xfe8]
mov byte [eax], cl
mov ecx, dword [esp + 0x60]
movzx eax, byte [esp + 0x246]
push dword [ecx + 0x144]
push eax
push dword [ecx + 0x140]
call fcn.10513d40
mov eax, dword [esp + 0x6c]
push dword [eax + 0x144]
movzx eax, byte [esp + 0x256]
push eax
push dword [edi + 0xfe8]
call fcn.10513d40
add esp, 0x18
movups xmm0, xmmword [esp + 0x100]
mov eax, dword [esp + 0x110]
mov cl, byte [esp + 0x244]
movups xmmword [edi + 0x1c], xmm0
mov dword [edi + 0x2c], eax
jmp 0x10489954
mov cl, byte [esp + 0x1b]
mov edx, dword [esp + 0x240]
cmp dword [esp + 0x74], 0
je 0x10489ba4
mov eax, dword [esp + 0x668]
mov dword [esp + 0xc8], eax
cmp cl, 0xd
jb 0x10489a18
cmp dword [esp + 0x58], 0
je 0x104899fb
test edx, edx
je 0x104899fb
mov eax, dword [esp + 0x100]
cmp dword [edx], eax
jne 0x104899fb
xor ecx, ecx
lea eax, [esp + 0xef0]
nop dword [eax]
cmp dword [eax], 0
je 0x104899b3
inc ecx
add eax, 0xc
cmp ecx, 3
jl 0x104899a0
or ecx, 0xffffffff
jmp 0x104899c1
lea eax, [ecx + ecx*2]
mov dword [esp + eax*4 + 0xef0], 1
push dword [esp + 0xec]
lea eax, [ecx + ecx*2]
push dword [esp + 0xb8]
lea esi, [esp + 0xef0]
push dword [esi + eax*4 + 4]
lea esi, [esi + eax*4]
push dword [esi]
push dword [edx + 4]
push dword [edx]
call dword [0x10b4964c]
mov dword [esp + 0x258], esi
add esp, 0x18
mov esi, dword [esp + 0x2c]
movups xmm0, xmmword [esp + 0x100]
mov eax, dword [esp + 0x110]
movups xmmword [edi + 0x1c], xmm0
mov dword [edi + 0x2c], eax
mov eax, dword [esp + 0xc8]
push dword [esp + 0x2f4]
lea ecx, [esp + 0x2bc]
push dword [esp + 0x2f4]
push ecx
push dword [esp + 0x6c]
push eax
push dword [esp + 0x30]
push esi
push dword [esp + 0x30]
call fcn.10142300
mov eax, dword [esp + 0x2ec]
add esp, 0x20
cmp eax, dword [esp + 0x2f4]
jg 0x10489b9d
jl 0x10489a6e
mov eax, dword [esp + 0x2c8]
cmp eax, dword [esp + 0x2f0]
jae 0x10489b9d
mov ecx, dword [esp + 0xb0]
movups xmm0, xmmword [ecx + 0x56]
movups xmmword [esp + 0x27c], xmm0
movups xmm0, xmmword [ecx + 0x66]
movups xmmword [esp + 0x28c], xmm0
movups xmm0, xmmword [ecx + 0x76]
movups xmmword [esp + 0x29c], xmm0
mov ax, word [ecx + 0x86]
mov word [esp + 0x2ac], ax
mov byte [esp + 0x244], 0
mov dword [ecx + 0xc], 0x80008000
mov dword [ecx + 0x10], 0x80008000
cmp byte [esi + 0x24392], 0
mov eax, dword [esp + 0x2b8]
mov ecx, dword [esp + 0x2c4]
mov dword [esp + 0x2e0], eax
mov eax, dword [esp + 0x2c0]
mov dword [esp + 0x2e8], eax
mov eax, dword [esp + 0x2c8]
mov dword [esp + 0x2f0], eax
mov al, byte [esp + 0x2d8]
mov dword [esp + 0x2ec], ecx
mov ecx, dword [esp + 0x2cc]
mov word [esp + 0x247], 0
mov dword [esp + 0x2f4], ecx
mov byte [esp + 0x249], al
jne 0x10489b34
cmp byte [esi + 0x24393], 0
jne 0x10489b34
test al, al
jne 0x10489b5b
jmp 0x10489b3c
mov byte [esp + 0x2d8], 0
mov ecx, dword [esp + 0x60]
lea eax, [esi + 0x23b81]
push dword [ecx + 0x144]
push eax
push dword [ecx + 0x100]
call fcn.105137c0
add esp, 0xc
mov eax, dword [edi + 0xfe8]
cmp byte [eax], 0
je 0x10489b9d
mov ecx, dword [esp + 0x60]
push dword [ecx + 0x144]
push eax
push dword [ecx + 0x140]
call fcn.105137c0
movups xmm0, xmmword [esp + 0x10c]
mov eax, dword [esp + 0x11c]
add esp, 0xc
movups xmmword [esi + 0xfc], xmm0
mov dword [esi + 0x10c], eax
jmp 0x10489bc7
mov cl, byte [esp + 0x244]
cmp dword [esp + 0x74], 0
movups xmm0, xmmword [esp + 0x100]
mov eax, dword [esp + 0x110]
movups xmmword [esi + 0xfc], xmm0
mov dword [esi + 0x10c], eax
je 0x10489c07
movups xmm0, xmmword [esp + 0x27c]
mov edx, dword [esp + 0x44]
movups xmmword [edx + 0x56], xmm0
movups xmm0, xmmword [esp + 0x28c]
movups xmmword [edx + 0x66], xmm0
movups xmm0, xmmword [esp + 0x29c]
movups xmmword [edx + 0x76], xmm0
mov ax, word [esp + 0x2ac]
mov word [edx + 0x86], ax
mov cl, byte [esp + 0x244]
jmp 0x10489c0b
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x14]
mov byte [edx + 5], cl
mov al, byte [esp + 0x247]
mov byte [edx + 0x14], al
mov al, byte [esp + 0x248]
mov byte [edx + 0x15], al
cmp dword [edi + 0x3eb34], 0
jne 0x10489c5f
cmp dword [edi + 0x3eb30], 0
jne 0x10489c5f
mov eax, dword [esp + 0x60]
mov byte [esi + 0x23b80], 0
push dword [eax + 0x144]
push 0
push dword [eax + 0x100]
call fcn.10513d40
mov edx, dword [esp + 0x50]
add esp, 0xc
jmp 0x10489c6c
mov al, byte [esp + 0x249]
mov byte [esi + 0x23b80], al
mov cl, byte [edx + 0x15]
test cl, cl
jle 0x10489c87
mov al, byte [edx + 0xa0]
and al, 0xfe
mov byte [edx + 0x4f], 0
or al, 2
mov byte [edx + 0xa0], al
mov al, byte [edx + 0x9f]
test al, al
js 0x10489ca0
cmp byte [edx + 0x14], 0
jg 0x10489ca0
mov dword [edx + 0x18], 0x30003
jmp 0x10489ccf
movsx eax, byte [esp + 0x247]
cmp byte [esp + eax + 0xe30], 0
jne 0x10489cc8
test cl, cl
jle 0x10489ccf
movsx eax, byte [esp + 0x248]
cmp byte [esp + eax + 0xe30], 0
je 0x10489ccf
mov byte [esi + 0x1e43e], 0
cmp dword [esp + 0x58], 0
je 0x10489d24
mov ecx, dword [esp + 0x240]
test ecx, ecx
je 0x10489d24
mov edx, dword [ecx]
cmp edx, dword [esp + 0x100]
je 0x10489d20
mov eax, dword [esp + 0x44]
mov al, byte [eax + 5]
sub al, 0xd
cmp al, 0xb
ja 0x10489d20
push dword [esp + 0xf8]
push dword [esp + 0xc4]
push dword [esi + 0x10c]
push dword [esi + 0xfc]
push dword [ecx + 4]
push edx
call dword [0x10b4964c]
add esp, 0x18
mov edx, dword [esp + 0x44]
cmp dword [edi + 0x5ce80], 0
je 0x10489f1c
cmp byte [edx + 0x15], 0
jg 0x10489f1c
movzx eax, byte [edx + 5]
push eax
call fcn.1048b300
mov dl, byte [esp + 0x24b]
add esp, 4
mov edi, dword [esp + 0x1c]
movsx ecx, dl
add edi, 0xfffffffd
mov al, byte [eax + ecx*4 + 0x10a1511c]
mov byte [esp + 0x27], al
xor eax, eax
test dl, dl
jne 0x10489e47
xor ecx, ecx
mov dword [esp + 0xc0], eax
test edi, edi
cmovle edi, ecx
mov dword [esp + 0x5c], edi
movzx eax, byte [eax + 0x10a15114]
push eax
call fcn.1048b300
mov edx, 0xf
add esp, 4
mov al, byte [eax + 0x10a1511c]
mov byte [esp + 0x1b], al
mov eax, dword [esp + 0x1c]
add eax, 6
cmp eax, edx
cmovl edx, eax
cmp edi, edx
jg 0x10489e2a
movzx eax, byte [esp + 0x1b]
sub edx, edi
imul ecx, edi, 0xa9
add ecx, eax
mov eax, 0xaaaaaaab
mul edx
mov al, byte [esp + 0x27]
lea esi, [esi + ecx*4]
shr edx, 1
add esi, 0x17bc4
inc edx
cmp byte [esp + 0x1b], al
jne 0x10489dfc
nop dword [eax + eax]
mov ecx, dword [esi]
lea esi, [esi + 0x7ec]
mov eax, ecx
sar eax, 4
sub ecx, eax
mov dword [esi - 0x7ec], ecx
sub edx, 1
jne 0x10489de0
jmp 0x10489e26
mov edi, dword [esp + 0x14]
mov eax, dword [esi]
lea esi, [esi + 0x7ec]
mov ecx, dword [edi + 0x5ce80]
inc eax
shl ecx, 6
cmp eax, ecx
cmovge eax, ecx
mov dword [esi - 0x7ec], eax
sub edx, 1
jne 0x10489e00
mov edi, dword [esp + 0x5c]
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0xc0]
inc eax
mov dword [esp + 0xc0], eax
cmp eax, 4
jl 0x10489d80
jmp 0x10489f1c
test edi, edi
mov byte [esp + 0x38], 0xd
cmovle edi, eax
mov dword [esp + 0x5c], edi
push dword [esp + 0x38]
call fcn.1048b300
movsx ecx, byte [esp + 0x24b]
mov edx, 0xf
add esp, 4
mov al, byte [eax + ecx*4 + 0x10a1511c]
mov byte [esp + 0x1b], al
mov eax, dword [esp + 0x1c]
add eax, 6
cmp eax, edx
cmovl edx, eax
cmp edi, edx
jg 0x10489f0a
movzx eax, byte [esp + 0x1b]
sub edx, edi
imul ecx, edi, 0xa9
add ecx, eax
mov eax, 0xaaaaaaab
mul edx
mov al, byte [esp + 0x27]
lea esi, [esi + ecx*4]
shr edx, 1
add esi, 0x17bc4
inc edx
cmp byte [esp + 0x1b], al
jne 0x10489edc
nop dword [eax]
mov ecx, dword [esi]
lea esi, [esi + 0x7ec]
mov eax, ecx
sar eax, 4
sub ecx, eax
mov dword [esi - 0x7ec], ecx
sub edx, 1
jne 0x10489ec0
jmp 0x10489f06
mov edi, dword [esp + 0x14]
mov eax, dword [esi]
lea esi, [esi + 0x7ec]
mov ecx, dword [edi + 0x5ce80]
inc eax
shl ecx, 6
cmp eax, ecx
cmovge eax, ecx
mov dword [esi - 0x7ec], eax
sub edx, 1
jne 0x10489ee0
mov edi, dword [esp + 0x5c]
mov esi, dword [esp + 0x2c]
mov al, byte [esp + 0x38]
inc al
mov byte [esp + 0x38], al
cmp al, 0x10
jbe 0x10489e55
push dword [esp + 0x60]
push esi
call fcn.1048dcf0
mov eax, dword [esp + 0x104]
movups xmm0, xmmword [esp + 0x2e8]
mov ecx, dword [esp + 0x4c]
movups xmmword [eax], xmm0
movups xmm0, xmmword [esp + 0x2f8]
movups xmmword [eax + 0x10], xmm0
movq xmm0, qword [esp + 0x308]
movq qword [eax + 0x20], xmm0
movzx eax, byte [ecx + 0x15]
push eax
movzx eax, byte [ecx + 0x14]
push eax
lea eax, [esi + 0xe0]
push eax
push dword [esp + 0x94]
call fcn.101707d0
mov ecx, dword [esp + 0xcf44]
add esp, 0x18
pop edi
pop esi
xor ecx, esp
call fcn.105116c0
mov esp, ebp
pop ebp
ret