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

Disassembly:
sub esp, 0x1ac
mov eax, dword [0x1058ac14]
xor eax, esp
mov dword [esp + 0x1a8], eax
mov ecx, dword [esp + 0x1b0]
mov eax, dword [esp + 0x1b8]
mov edx, dword [esp + 0x1bc]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x1c0]
mov ebp, eax
push edi
mov edi, ecx
mov dword [esp + 0xcc], ecx
mov ecx, dword [esp + 0x1e0]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x1d4]
push eax
mov ebx, dword [ecx + 8]
push dword [esp + 0x1d4]
mov dword [esp + 0x84], ecx
mov ecx, dword [ecx + 0xc]
push ecx
push ebx
push edx
mov dword [esp + 0x50], edi
mov dword [esp + 0x24], esi
mov dword [esp + 0x30], ebp
mov dword [esp + 0x54], edx
mov dword [esp + 0x44], eax
mov dword [esp + 0x3c], ebx
mov dword [esp + 0xb8], ecx
call fcn.101b3a70
mov ecx, dword [esp + 0x90]
add esp, 0x14
mov dword [esp + 0x64], eax
neg eax
sbb eax, eax
and eax, 4
mov dword [ecx], 0
mov dword [ecx + 4], eax
mov eax, dword [esp + 0xa4]
cmp ebx, 4
jl 0x101b408f
cmp eax, 4
jge 0x101b409a
mov dword [esp + 0x1dc], 0
push eax
push ebx
push ecx
call fcn.101b2d40
add esp, 0xc
test eax, eax
je 0x101b5f94
cmp dword [esp + 0x1dc], 0
je 0x101b422b
cmp dword [0x10594780], 0
jne 0x101b41d0
xor ecx, ecx
mov dword [esp + 0x14], ecx
nop
movsd xmm1, qword [0x102ec3f0]
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x102ec3d0]
comisd xmm1, xmm0
jb 0x101b40f8
divsd xmm0, qword [0x103efb10]
jmp 0x101b4115
addsd xmm0, qword [0x102ec3f8]
movsd xmm1, qword [0x102ec420]
mulsd xmm0, qword [0x102ec408]
call fcn.1027dc40
mulsd xmm0, qword [0x102ec438]
addsd xmm0, qword [0x103efa18]
call fcn.1026ad30
mov ecx, dword [esp + 0x14]
mov dword [ecx*4 + 0x10593780], eax
inc ecx
mov dword [esp + 0x14], ecx
cmp ecx, 0x3ff
jle 0x101b40d0
xor ecx, ecx
mov dword [esp + 0x14], ecx
nop dword [eax + eax]
movsd xmm1, qword [0x102ec3e0]
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x103ef950]
comisd xmm1, xmm0
jb 0x101b4178
mulsd xmm0, qword [0x103efb10]
jmp 0x101b4195
movsd xmm1, qword [0x102ec400]
call fcn.1027dc40
mulsd xmm0, qword [0x102ec410]
subsd xmm0, qword [0x102ec3f8]
mulsd xmm0, qword [0x102ec428]
call fcn.1026ad30
mov ecx, dword [esp + 0x14]
add eax, 0x2000
mov dword [ecx*4 + 0x105936f8], eax
inc ecx
mov dword [esp + 0x14], ecx
cmp ecx, 0x20
jle 0x101b4150
mov eax, dword [0x10593778]
mov dword [0x1059377c], eax
mov dword [0x10594780], 1
mov eax, dword [esp + 0x7c]
push eax
push dword [esp + 0x34]
push dword [esp + 0x1d8]
push ebp
push esi
push edi
call fcn.101b61a0
add esp, 0x18
test eax, eax
je 0x101b5f94
cmp dword [esp + 0x64], 0
je 0x101b5f8d
mov eax, dword [esp + 0x7c]
push dword [eax + 0x28]
push dword [eax + 0x24]
push dword [esp + 0xac]
push ebx
push dword [esp + 0x40]
push dword [esp + 0x54]
call dword [0x10595cb8]
add esp, 0x18
mov eax, 1
jmp 0x101b5f96
xor ecx, ecx
lea eax, [ebx + 1]
sar eax, 1
cmp dword [esp + 0x1d0], 3
mov dword [esp + 0x9c], eax
sete cl
shl eax, 2
cdq
push 2
push edx
push eax
mov dword [esp + 0x20], ecx
call fcn.101bac00
mov ecx, dword [esp + 0x88]
xor ebx, ebx
movss xmm0, dword [esp + 0x1e4]
add esp, 0xc
comiss xmm0, dword [0x103ef830]
mov dword [esp + 0x54], eax
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x68], eax
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x90], eax
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x80], eax
mov eax, dword [ecx + 0x24]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x44], ebx
jbe 0x101b42c6
push ecx
lea eax, [esp + 0xd4]
movss dword [esp], xmm0
push eax
call fcn.101c13a0
lea ebx, [esp + 0xd8]
mov dword [esp + 0x1c], 0
add esp, 8
mov dword [esp + 0x44], ebx
call fcn.101bf400
cmp dword [0x105934f4], 0
jne 0x101b437c
xor ebp, ebp
nop word [eax + eax]
movsd xmm1, qword [0x103efa50]
movd xmm0, ebp
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x102ec3d8]
call fcn.1027dc40
mulsd xmm0, qword [0x102ec430]
addsd xmm0, qword [0x103efa18]
cvttsd2si eax, xmm0
mov word [ebp*2 + 0x105934f8], ax
inc ebp
cmp ebp, 0xff
jle 0x101b42e0
mov ebp, dword [esp + 0x1c]
xor edi, edi
nop dword [eax + eax]
movsd xmm1, qword [0x102ec418]
movd xmm0, edi
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x102ec3e8]
call fcn.1027dc40
mulsd xmm0, qword [0x103efbe0]
addsd xmm0, qword [0x103efa18]
cvttsd2si eax, xmm0
mov dword [edi*4 + 0x10593470], eax
inc edi
cmp edi, 0x20
jle 0x101b4330
mov edi, dword [esp + 0x3c]
mov dword [0x105934f4], 1
mov ecx, dword [esp + 0x54]
test ecx, ecx
je 0x101b5f94
mov eax, dword [esp + 0xa4]
sar eax, 1
mov dword [esp + 0x34], eax
test eax, eax
jle 0x101b54d3
mov eax, dword [esp + 0x28]
sub ecx, edi
mov esi, dword [esp + 0x30]
mov edx, eax
sar edx, 1
mov dword [esp + 0xb4], edx
mov edx, eax
and edx, 1
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x1d0]
mov dword [esp + 0x70], edx
sub ecx, esi
lea edx, [esi + esi]
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x88], edx
mov ecx, 4
mov edx, esi
neg edx
add edx, edx
sub ecx, esi
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0xb8], ecx
jmp 0x101b4405
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x14], 0
mov ecx, dword [esp + 0x64]
mov dword [esp + 0xa0], ecx
je 0x101b4496
mov ecx, dword [esp + 0xcc]
push eax
cmp ecx, dword [esp + 0xc0]
jae 0x101b4460
push dword [esp + 0x6c]
push edi
call dword [0x10595cdc]
mov eax, dword [esp + 0x88]
lea ebx, [esi + edi]
push dword [esp + 0x34]
mov dword [esp + 0x70], ebx
mov eax, dword [eax + 0x1c]
add eax, dword [esp + 0x78]
push eax
push ebx
call dword [0x10595cdc]
add esp, 0x18
jmp 0x101b47ed
mov ebx, dword [esp + 0x6c]
push ebx
push ebp
call dword [0x10595cd8]
mov eax, dword [esp + 0x88]
push dword [esp + 0x34]
mov eax, dword [eax + 0x1c]
add eax, ebx
push eax
lea eax, [esi + ebp]
push eax
call dword [0x10595cd8]
lea eax, [esi + edi]
add esp, 0x18
mov dword [esp + 0x60], eax
jmp 0x101b47ed
xor esi, esi
test eax, eax
jle 0x101b462c
test ebx, ebx
jne 0x101b4519
mov eax, dword [esp + 0x10]
mov edx, ebp
sub eax, ebp
mov dword [esp + 0x18], eax
mov eax, edi
mov edi, dword [esp + 0x1d0]
sub eax, ebp
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x2c], eax
nop dword [eax + eax]
movzx eax, byte [eax + edx]
imul ecx, eax, 0x41c7
movzx eax, byte [ebx + edx]
imul eax, eax, 0x8123
add ecx, eax
movzx eax, byte [edx]
imul eax, eax, 0x1914
add ecx, 0x108000
add edx, edi
add eax, ecx
mov ecx, dword [esp + 0x68]
shr eax, 0x10
mov byte [esi + ecx], al
inc esi
mov eax, dword [esp + 0x2c]
cmp esi, ebp
jl 0x101b44d0
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x3c]
jmp 0x101b4630
lea eax, [ebx + 0xe4]
mov dword [esp + 0x38], esi
mov dword [esp + 0x5c], eax
lea esi, [ebx + 4]
mov eax, ebp
mov dword [esp + 0x20], esi
sub eax, edx
mov ebx, edi
mov ecx, edx
mov dword [esp + 0x50], eax
sub ebx, edx
mov dword [esp + 0x24], ecx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x84], ebx
nop dword [eax + eax]
movzx ebp, byte [eax + ecx]
movzx eax, byte [ecx]
movzx ebx, byte [ebx + ecx]
mov edx, dword [edx]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x18], 0
mov edi, dword [eax]
mov eax, dword [esi]
mov esi, dword [esp + 0x44]
mov ecx, dword [esi + edx*4 + 8]
sub ecx, dword [esi + eax*4 + 8]
mov eax, dword [esp + 0x44]
lea esi, [ecx - 0x80000000]
cmovns esi, ecx
xor ecx, ecx
mov dword [eax + edx*4 + 8], esi
mov edx, eax
inc dword [edx]
mov eax, dword [edx]
cmp eax, 0x37
cmove eax, ecx
mov ecx, dword [esp + 0x20]
mov dword [edx], eax
inc dword [ecx]
mov eax, dword [ecx]
cmp eax, 0x37
cmove eax, dword [esp + 0x18]
mov dword [ecx], eax
lea ecx, [esi + esi]
sar ecx, 0x10
imul ecx, edi
mov edi, dword [esp + 0x68]
imul eax, ebx, 0x41c7
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
sar ecx, 8
add ecx, eax
imul eax, ebp, 0x1914
add ecx, eax
imul eax, dword [esp + 0x2c], 0x8123
add eax, 0x108000
add eax, ecx
mov ecx, dword [esp + 0x24]
add ecx, dword [esp + 0x1d0]
sar eax, 0x10
mov byte [ebx + edi], al
inc ebx
cmp ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x84]
mov dword [esp + 0x24], ecx
jl 0x101b4550
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax + 0x1c]
add ecx, edi
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x48], ecx
jmp 0x101b46dd
mov ebp, dword [esp + 0x28]
lea eax, [ebx + 4]
mov esi, eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x7c]
lea ecx, [ebx + 0xe4]
mov dword [esp + 0x5c], ecx
mov eax, dword [eax + 0x1c]
add eax, dword [esp + 0x68]
mov dword [esp + 0x48], eax
test ebp, ebp
jle 0x101b47df
test ebx, ebx
jne 0x101b46d9
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
add eax, edi
mov dword [esp + 0x60], eax
mov edx, eax
mov eax, dword [esp + 0x10]
sub eax, edi
sub esi, edi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x18], eax
mov dword [esp + 0x58], esi
nop word [eax + eax]
movzx eax, byte [eax + edx]
imul ecx, eax, 0x8123
movzx eax, byte [esi + edx]
imul eax, eax, 0x1914
add ecx, eax
movzx eax, byte [edx]
add edx, dword [esp + 0x1d0]
imul eax, eax, 0x41c7
add eax, 0x108000
add eax, ecx
shr eax, 0x10
mov byte [ebx + edi], al
inc ebx
mov eax, dword [esp + 0x18]
cmp ebx, ebp
jl 0x101b4690
mov edi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x1c]
jmp 0x101b47f5
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x30]
add eax, edi
mov dword [esp + 0x38], 0
mov ebx, eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x10]
sub eax, edi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
sub eax, edi
mov dword [esp + 0x58], eax
nop dword [eax]
movzx ebp, byte [eax + ebx]
mov eax, dword [esp + 0x18]
mov edx, dword [edx]
mov dword [esp + 0x2c], 0
movzx eax, byte [eax + ebx]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x5c]
movzx ebx, byte [ebx]
mov edi, dword [eax]
mov eax, dword [esi]
mov esi, dword [esp + 0x44]
mov ecx, dword [esi + edx*4 + 8]
sub ecx, dword [esi + eax*4 + 8]
mov eax, dword [esp + 0x44]
lea esi, [ecx - 0x80000000]
cmovns esi, ecx
xor ecx, ecx
mov dword [eax + edx*4 + 8], esi
mov edx, eax
inc dword [edx]
mov eax, dword [edx]
cmp eax, 0x37
cmove eax, ecx
mov ecx, dword [esp + 0x20]
mov dword [edx], eax
inc dword [ecx]
mov eax, dword [ecx]
cmp eax, 0x37
cmove eax, dword [esp + 0x2c]
mov dword [ecx], eax
lea ecx, [esi + esi]
mov esi, dword [esp + 0x38]
sar ecx, 0x10
imul ecx, edi
imul eax, ebx, 0x41c7
mov ebx, dword [esp + 0x24]
add ebx, dword [esp + 0x1d0]
mov dword [esp + 0x24], ebx
sar ecx, 8
add ecx, eax
imul eax, ebp, 0x1914
add ecx, eax
imul eax, dword [esp + 0x50], 0x8123
add eax, 0x108000
add eax, ecx
mov ecx, dword [esp + 0x48]
sar eax, 0x10
mov byte [esi + ecx], al
inc esi
mov ecx, dword [esp + 0x28]
cmp esi, ecx
mov eax, dword [esp + 0x58]
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x20]
jl 0x101b4710
mov edi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x1c]
jmp 0x101b47f9
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x1c]
add eax, edi
mov dword [esp + 0x60], eax
mov esi, ebp
sub esi, edi
mov dword [esp + 0x58], esi
mov ecx, dword [esp + 0x28]
cmp dword [esp + 0x64], 0
mov ebx, dword [esp + 0x7c]
mov edx, dword [esp + 0x68]
mov eax, dword [ebx + 0x1c]
lea edx, [edx + eax*2]
mov dword [esp + 0x68], edx
je 0x101b4846
push dword [ebx + 0x28]
push dword [esp + 0x50]
push 2
push ecx
push dword [esp + 0x40]
push dword [esp + 0x54]
call dword [0x10595cb8]
mov edx, dword [esp + 0x64]
add esp, 0x18
mov ecx, dword [ebx + 0x28]
neg eax
sbb eax, eax
inc eax
and eax, dword [esp + 0x64]
lea edx, [edx + ecx*2]
mov dword [esp + 0x4c], edx
jmp 0x101b484d
mov eax, dword [esp + 0xa0]
test eax, eax
mov eax, dword [esp + 0x54]
jne 0x101b4bbe
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x20], eax
xor eax, eax
mov dword [esp + 0x58], eax
cmp dword [esp + 0xb4], eax
jle 0x101b4aac
mov eax, dword [esp + 0x1d0]
mov edx, dword [esp + 0xc0]
add edx, dword [esp + 0x60]
mov dword [esp + 0x48], edx
lea ecx, [eax + eax]
mov dword [esp + 0x24], ecx
lea ecx, [esi + ebx]
add ecx, eax
mov dword [esp + 0x2c], ecx
mov ecx, esi
sub ecx, eax
mov eax, ebx
sub eax, edi
mov dword [esp + 0x50], ecx
mov dword [esp + 0x84], eax
mov ecx, edi
mov eax, ebp
sub ecx, ebx
sub eax, edi
mov dword [esp + 0x78], ecx
mov edi, dword [esp + 0xb4]
mov dword [esp + 0xb0], eax
lea eax, [esi + ebp]
mov dword [esp + 0x98], eax
sub eax, ebx
mov dword [esp + 0xa8], eax
mov eax, ebp
sub eax, ebx
mov dword [esp + 0x38], edi
mov dword [esp + 0xa0], eax
mov ebp, ebx
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x2c]
imul eax, edi
mov edi, 0x200
mov dword [esp + 0x58], eax
nop dword [eax]
nop word [eax + eax]
movzx eax, byte [ecx + ebx]
movzx ecx, word [eax*2 + 0x105934f8]
mov eax, dword [esp + 0x50]
movzx eax, byte [eax + edx]
movzx eax, word [eax*2 + 0x105934f8]
add ecx, eax
mov eax, dword [esp + 0x78]
movzx eax, byte [eax + ebp]
movzx eax, word [eax*2 + 0x105934f8]
add ecx, eax
movzx eax, byte [edx]
movzx edx, word [eax*2 + 0x105934f8]
add edx, ecx
mov ecx, edi
mov eax, edx
and edx, 0x1ff
shr eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x10593470]
mov eax, dword [eax*4 + 0x10593474]
imul eax, edx
mov edx, dword [esp + 0x84]
add ecx, 0x40
add eax, ecx
mov ecx, dword [esp + 0x20]
sar eax, 7
mov word [ecx], ax
movzx eax, byte [esi + ebp]
mov esi, dword [esp + 0xb0]
movzx ecx, word [eax*2 + 0x105934f8]
mov eax, dword [esp + 0x48]
movzx eax, byte [edx + eax]
movzx edx, word [eax*2 + 0x105934f8]
movzx eax, byte [ebp]
add edx, ecx
mov ecx, edi
movzx eax, word [eax*2 + 0x105934f8]
add edx, eax
movzx eax, byte [ebx]
movzx eax, word [eax*2 + 0x105934f8]
add edx, eax
mov eax, edx
and edx, 0x1ff
shr eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x10593470]
mov eax, dword [eax*4 + 0x10593474]
imul eax, edx
mov edx, dword [esp + 0xa0]
add ecx, 0x40
add eax, ecx
mov ecx, dword [esp + 0x20]
sar eax, 7
mov word [ecx + 2], ax
movzx eax, byte [edx + ebx]
movzx ecx, word [eax*2 + 0x105934f8]
mov eax, dword [esp + 0x48]
movzx eax, byte [esi + eax]
movzx eax, word [eax*2 + 0x105934f8]
add ecx, eax
mov eax, dword [esp + 0xa8]
movzx eax, byte [eax + ebp]
movzx eax, word [eax*2 + 0x105934f8]
add ecx, eax
movzx eax, byte [edx + ebp]
movzx edx, word [eax*2 + 0x105934f8]
add edx, ecx
mov ecx, edi
mov eax, edx
and edx, 0x1ff
shr eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x10593470]
mov eax, dword [eax*4 + 0x10593474]
imul eax, edx
mov edx, dword [esp + 0x48]
add ecx, 0x40
add eax, ecx
mov ecx, dword [esp + 0x20]
sar eax, 7
mov word [ecx + 4], ax
mov eax, dword [esp + 0x24]
add ecx, 8
mov esi, dword [esp + 0x30]
add edx, eax
add ebx, eax
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x78]
add ebp, eax
sub dword [esp + 0x38], 1
mov dword [esp + 0x48], edx
jne 0x101b4910
mov edi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x58]
jmp 0x101b4ab6
lea ecx, [esi + ebp]
mov dword [esp + 0x98], ecx
cmp dword [esp + 0x70], 0
je 0x101b52b9
add esi, eax
movzx eax, byte [eax + edi]
movzx edx, word [eax*2 + 0x105934f8]
movzx eax, byte [esi + edi]
mov edi, 0x200
mov ecx, edi
movzx eax, word [eax*2 + 0x105934f8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x10593470]
mov eax, dword [eax*4 + 0x10593474]
imul eax, edx
add eax, 0x40
add eax, ecx
mov ecx, dword [esp + 0x20]
sar eax, 7
mov word [ecx], ax
mov ecx, edi
mov eax, dword [esp + 0x58]
movzx eax, byte [eax + ebx]
movzx edx, word [eax*2 + 0x105934f8]
movzx eax, byte [esi + ebx]
mov ebx, dword [esp + 0x20]
movzx eax, word [eax*2 + 0x105934f8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x10593470]
mov eax, dword [eax*4 + 0x10593474]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, dword [esp + 0x58]
sar eax, 7
mov word [ebx + 2], ax
movzx eax, byte [ecx + ebp]
movzx edx, word [eax*2 + 0x105934f8]
mov eax, dword [esp + 0x98]
movzx eax, byte [eax + ecx]
mov ecx, edi
movzx eax, word [eax*2 + 0x105934f8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x10593470]
mov eax, dword [eax*4 + 0x10593474]
imul eax, edx
add eax, 0x40
add eax, ecx
sar eax, 7
mov word [ebx + 4], ax
jmp 0x101b52b9
xor ebx, ebx
mov dword [esp + 0x24], eax
cmp dword [esp + 0xb4], ebx
jle 0x101b5061
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x20], ebp
add ecx, dword [esp + 0x6c]
lea ebp, [eax + edx]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x60], ebp
mov ebp, dword [esp + 0x40]
add ebp, eax
mov eax, dword [esp + 0x1c]
mov esi, eax
mov dword [esp + 0x98], eax
sub esi, dword [esp + 0x40]
sub dword [esp + 0x98], edx
mov dword [esp + 0xac], esi
mov esi, edi
sub esi, dword [esp + 0x40]
mov dword [esp + 0xb0], esi
mov esi, edx
sub esi, dword [esp + 0x40]
mov dword [esp + 0x84], esi
mov esi, 0xfffffffc
sub esi, dword [esp + 0x30]
mov dword [esp + 0xc8], esi
mov esi, dword [esp + 0x40]
sub esi, edi
mov dword [esp + 0x74], ebp
sub edi, edx
mov dword [esp + 0xc4], esi
add ebp, 4
mov dword [esp + 0xa0], edi
sub edx, eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x6c], eax
jmp 0x101b4c87
mov esi, dword [esp + 0xc4]
movzx edi, byte [ebp - 4]
movzx eax, byte [ebp]
mov dword [esp + 0x5c], edi
movzx edi, byte [esi + ecx]
mov esi, dword [esp + 0xc8]
mov dword [esp + 0xa8], edi
mov dword [esp + 0x78], eax
movzx esi, byte [esi + ebp]
add edi, esi
mov dword [esp + 0x38], esi
add edi, dword [esp + 0x5c]
mov esi, dword [esp + 0x58]
add edi, eax
cmp edi, 0x3fc
je 0x101b4e83
test edi, edi
je 0x101b4e83
mov eax, dword [esp + 0xa0]
mov esi, dword [esp + 0x50]
movzx eax, byte [eax + edx]
movzx edx, word [eax*2 + 0x105934f8]
imul edx, dword [esp + 0x5c]
mov eax, dword [esp + 0xb0]
movzx eax, byte [eax + ebp]
movzx eax, word [eax*2 + 0x105934f8]
imul eax, dword [esp + 0x78]
add edx, eax
movzx eax, byte [ecx - 4]
movzx eax, word [eax*2 + 0x105934f8]
imul eax, dword [esp + 0x38]
add edx, eax
movzx eax, byte [ecx]
mov ecx, 0x200
movzx eax, word [eax*2 + 0x105934f8]
imul eax, dword [esp + 0xa8]
add edx, eax
imul edx, dword [edi*4 + 0x102eb3d8]
shr edx, 0x11
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x10593470]
mov eax, dword [eax*4 + 0x10593474]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, dword [esp + 0x60]
sar eax, 7
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xb8]
movzx eax, byte [eax + ecx]
movzx edx, word [eax*2 + 0x105934f8]
mov eax, dword [esp + 0x20]
imul edx, dword [esp + 0xa8]
movzx eax, byte [esi + eax]
mov esi, dword [edi*4 + 0x102eb3d8]
movzx eax, word [eax*2 + 0x105934f8]
imul eax, dword [esp + 0x38]
add edx, eax
mov eax, dword [esp + 0x84]
movzx eax, byte [eax + ebp]
movzx eax, word [eax*2 + 0x105934f8]
imul eax, dword [esp + 0x78]
add edx, eax
movzx eax, byte [ecx]
mov ecx, 0x200
movzx eax, word [eax*2 + 0x105934f8]
imul eax, dword [esp + 0x5c]
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 + 0x10593470]
mov eax, dword [eax*4 + 0x10593474]
imul eax, edx
mov edx, dword [esp + 0x48]
add ecx, 0x40
add eax, ecx
mov ecx, dword [esp + 0x98]
sar eax, 7
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x58]
movzx eax, byte [eax + edx]
movzx edx, word [eax*2 + 0x105934f8]
mov eax, dword [esp + 0x60]
imul edx, dword [esp + 0xa8]
movzx eax, byte [ecx + eax]
movzx eax, word [eax*2 + 0x105934f8]
imul eax, dword [esp + 0x5c]
add edx, eax
mov eax, dword [esp + 0xac]
movzx eax, byte [eax + ebp]
movzx eax, word [eax*2 + 0x105934f8]
imul eax, dword [esp + 0x78]
add edx, eax
mov eax, dword [esp + 0x20]
movzx eax, byte [eax]
movzx eax, word [eax*2 + 0x105934f8]
imul eax, dword [esp + 0x38]
add edx, eax
imul edx, esi
shr edx, 0x11
mov eax, edx
sar eax, 9
jmp 0x101b4fc4
mov eax, dword [esp + 0xb0]
movzx eax, byte [eax + ebp]
movzx ecx, word [eax*2 + 0x105934f8]
mov eax, dword [esp + 0xa0]
movzx eax, byte [eax + edx]
mov edx, dword [esp + 0x48]
movzx eax, word [eax*2 + 0x105934f8]
add ecx, eax
movzx eax, byte [edx - 4]
movzx eax, word [eax*2 + 0x105934f8]
add ecx, eax
movzx eax, byte [edx]
movzx edx, word [eax*2 + 0x105934f8]
add edx, ecx
mov ecx, 0x200
mov eax, edx
and edx, 0x1ff
shr eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x10593470]
mov eax, dword [eax*4 + 0x10593474]
imul eax, edx
mov edx, dword [esp + 0x50]
add ecx, 0x40
add eax, ecx
sar eax, 7
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x84]
movzx eax, byte [eax + ebp]
movzx ecx, word [eax*2 + 0x105934f8]
mov eax, dword [esp + 0x20]
movzx eax, byte [edx + eax]
mov edx, dword [esp + 0x60]
movzx eax, word [eax*2 + 0x105934f8]
add ecx, eax
mov eax, dword [esp + 0xb8]
movzx eax, byte [eax + edx]
movzx eax, word [eax*2 + 0x105934f8]
add ecx, eax
movzx eax, byte [edx]
movzx edx, word [eax*2 + 0x105934f8]
add edx, ecx
mov ecx, 0x200
mov eax, edx
and edx, 0x1ff
shr eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x10593470]
mov eax, dword [eax*4 + 0x10593474]
imul eax, edx
mov edx, dword [esp + 0x48]
add ecx, 0x40
add eax, ecx
mov ecx, dword [esp + 0x30]
add ecx, dword [esp + 0x1c]
sar eax, 7
mov dword [esp + 0x18], eax
movzx eax, byte [esi + edx]
movzx edx, word [eax*2 + 0x105934f8]
movzx eax, byte [ecx + ebx + 4]
movzx eax, word [eax*2 + 0x105934f8]
add edx, eax
movzx eax, byte [ecx + ebx]
movzx eax, word [eax*2 + 0x105934f8]
add edx, eax
mov eax, dword [esp + 0x20]
movzx eax, byte [eax]
movzx eax, word [eax*2 + 0x105934f8]
add edx, eax
mov eax, edx
shr eax, 9
mov esi, dword [esp + 0x54]
and edx, 0x1ff
add dword [esp + 0x20], 8
mov ecx, 0x200
sub ecx, edx
add ebp, 8
imul edx, dword [eax*4 + 0x10593474]
imul ecx, dword [eax*4 + 0x10593470]
mov eax, dword [esp + 0x24]
add edx, 0x40
add edx, ecx
mov ecx, dword [esp + 0x2c]
mov word [eax], cx
add eax, 8
mov ecx, dword [esp + 0x18]
mov word [esi + ebx + 2], cx
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x94]
sar edx, 7
mov dword [esp + 0x24], eax
mov word [esi + ecx], dx
add ecx, 8
mov edx, dword [esp + 0x54]
mov dword [esp + 0x48], ecx
mov word [edx + ebx + 6], di
add ebx, 8
mov edx, dword [esp + 0x60]
add edx, 8
sub dword [esp + 0x6c], 1
mov dword [esp + 0x60], edx
jne 0x101b4c80
mov eax, dword [esp + 0xb8]
mov ebp, dword [esp + 0x30]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x74]
jmp 0x101b506c
mov ebp, dword [esp + 0x30]
mov ecx, dword [esp + 0x40]
lea eax, [ecx + ebp]
cmp dword [esp + 0x70], 0
je 0x101b52b5
movzx eax, byte [eax + ebx]
movzx ecx, byte [ecx + ebx]
mov dword [esp + 0x38], eax
add eax, ecx
add eax, eax
mov dword [esp + 0x78], ecx
mov dword [esp + 0x74], eax
cmp eax, 0x3fc
je 0x101b51a5
test eax, eax
je 0x101b51a5
mov esi, dword [eax*4 + 0x102eb3d8]
mov edi, 0x200
mov ecx, dword [esp + 0x3c]
add ecx, ebx
movzx eax, byte [ecx + ebp]
movzx edx, word [eax*2 + 0x105934f8]
movzx eax, byte [ecx]
mov ecx, edi
imul edx, dword [esp + 0x38]
movzx eax, word [eax*2 + 0x105934f8]
imul eax, dword [esp + 0x78]
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 + 0x10593470]
mov eax, dword [eax*4 + 0x10593474]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, dword [esp + 0x10]
sar eax, 7
add ecx, ebx
mov dword [esp + 0x18], eax
movzx eax, byte [ecx + ebp]
mov ebp, dword [esp + 0x1c]
movzx edx, word [eax*2 + 0x105934f8]
movzx eax, byte [ecx]
mov ecx, edi
imul edx, dword [esp + 0x38]
movzx eax, word [eax*2 + 0x105934f8]
imul eax, dword [esp + 0x78]
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 + 0x10593470]
mov eax, dword [eax*4 + 0x10593474]
imul eax, edx
add ecx, 0x40
add eax, ecx
lea ecx, [ebx + ebp]
sar eax, 7
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x30]
movzx eax, byte [ecx + eax]
movzx edx, word [eax*2 + 0x105934f8]
movzx eax, byte [ecx]
imul edx, dword [esp + 0x38]
movzx eax, word [eax*2 + 0x105934f8]
imul eax, dword [esp + 0x78]
add edx, eax
imul edx, esi
add edx, edx
shr edx, 0x11
jmp 0x101b526d
mov edi, dword [esp + 0x3c]
lea esi, [ebx + ebp]
mov ebp, dword [esp + 0x1c]
movzx eax, byte [ebx + edi]
movzx edx, word [eax*2 + 0x105934f8]
movzx eax, byte [esi + edi]
mov edi, 0x200
mov ecx, edi
movzx eax, word [eax*2 + 0x105934f8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x10593470]
mov eax, dword [eax*4 + 0x10593474]
imul eax, edx
add eax, 0x40
add eax, ecx
mov ecx, dword [esp + 0x10]
sar eax, 7
mov dword [esp + 0x18], eax
movzx eax, byte [ebx + ecx]
movzx edx, word [eax*2 + 0x105934f8]
movzx eax, byte [esi + ecx]
mov ecx, edi
movzx eax, word [eax*2 + 0x105934f8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x10593470]
mov eax, dword [eax*4 + 0x10593474]
imul eax, edx
add eax, 0x40
add eax, ecx
sar eax, 7
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x30]
add eax, ebp
movzx eax, byte [eax + ebx]
movzx edx, word [eax*2 + 0x105934f8]
movzx eax, byte [ebx + ebp]
movzx eax, word [eax*2 + 0x105934f8]
add edx, eax
add edx, edx
mov eax, edx
mov ecx, edi
sar eax, 9
and edx, 0x1ff
sub ecx, edx
imul edx, dword [eax*4 + 0x10593474]
imul ecx, dword [eax*4 + 0x10593470]
mov eax, dword [esp + 0x24]
add edx, 0x40
add edx, ecx
mov ecx, dword [esp + 0x18]
mov word [eax], cx
mov ecx, dword [esp + 0x2c]
sar edx, 7
mov word [eax + 2], cx
mov ecx, dword [esp + 0x74]
mov word [eax + 4], dx
mov word [eax + 6], cx
jmp 0x101b52b9
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x44]
test ebx, ebx
jne 0x101b52e9
push dword [esp + 0x9c]
mov ecx, dword [esp + 0x84]
push ecx
push dword [esp + 0x98]
push dword [esp + 0x60]
call dword [0x10595ce0]
add esp, 0x10
jmp 0x101b5471
mov edx, dword [esp + 0x9c]
test edx, edx
jle 0x101b5471
mov ebp, dword [esp + 0x54]
mov ecx, dword [esp + 0x80]
add ebp, 4
mov eax, dword [esp + 0x90]
sub eax, ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x74], eax
mov dword [esp + 0x84], edx
nop
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 + 0x50], eax
movzx eax, word [ebp]
mov dword [esp + 0x18], 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 + 0x18], 0x7080
add ecx, eax
imul eax, dword [esp + 0x50], 0x4a89
sub ecx, eax
add ecx, 0x2020000
sar ecx, 0x12
test ecx, 0xffffff00
je 0x101b53bf
sar ecx, 0x1f
and ecx, 0xffffff01
add ecx, 0xff
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x74]
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 + 0x18], 0x124c
sar ecx, 8
sub ecx, eax
imul eax, dword [esp + 0x2c], 0x7080
add ecx, eax
imul eax, dword [esp + 0x50], 0x5e34
sub ecx, eax
add ecx, 0x2020000
sar ecx, 0x12
test ecx, 0xffffff00
je 0x101b5451
sar ecx, 0x1f
and ecx, 0xffffff01
add ecx, 0xff
mov eax, dword [esp + 0x24]
add ebp, 8
mov byte [eax], cl
inc eax
sub dword [esp + 0x84], 1
mov dword [esp + 0x24], eax
jne 0x101b5320
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x7c]
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x8c]
mov eax, dword [eax + 0x20]
add dword [esp + 0x90], eax
add dword [esp + 0x80], eax
mov eax, dword [esp + 0x88]
add edi, eax
add dword [esp + 0x94], ecx
add ebp, eax
add edx, eax
mov dword [esp + 0x3c], edi
cmp dword [esp + 0x64], 0
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x10], edx
je 0x101b54c0
add dword [esp + 0x40], eax
sub dword [esp + 0x34], 1
mov esi, dword [esp + 0x30]
jne 0x101b4401
mov esi, dword [esp + 0x10]
test byte [esp + 0xa4], 1
je 0x101b5f81
cmp dword [esp + 0x14], 0
je 0x101b57ae
push dword [esp + 0x28]
push dword [esp + 0x6c]
cmp edi, ebp
jae 0x101b57a2
push edi
call dword [0x10595cdc]
mov edx, dword [esp + 0x34]
add esp, 0xc
mov esi, dword [esp + 0x1d0]
mov edi, dword [esp + 0x64]
mov ebp, dword [esp + 0x10]
test edi, edi
je 0x101b553c
push 0
push dword [esp + 0x50]
push 1
push edx
push 0
push dword [esp + 0x54]
call dword [0x10595cb8]
add esp, 0x18
neg eax
sbb eax, eax
inc eax
and edi, eax
mov ebx, dword [esp + 0x28]
mov edx, ebx
sar edx, 1
mov dword [esp + 0x94], edx
test edi, edi
jne 0x101b5925
mov eax, dword [esp + 0x54]
mov dword [esp + 0x14], eax
xor eax, eax
mov dword [esp + 0x5c], eax
test edx, edx
jle 0x101b56ca
mov ecx, dword [esp + 0x3c]
lea ebx, [esi + esi]
lea eax, [esi + ebp]
mov dword [esp + 0x74], ebx
mov esi, dword [esp + 0x1c]
sub ecx, ebp
sub esi, ebp
mov dword [esp + 0x8c], ebp
mov edi, ebp
mov ebp, edx
imul ebx, edx
mov dword [esp + 0x88], esi
mov esi, 0x200
mov dword [esp + 0x4c], eax
mov dword [esp + 0xac], ecx
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x14]
nop dword [eax]
movzx eax, byte [ecx + eax]
movzx edx, word [eax*2 + 0x105934f8]
movzx eax, byte [ecx + edi]
mov ecx, esi
movzx eax, word [eax*2 + 0x105934f8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x10593470]
mov eax, dword [eax*4 + 0x10593474]
imul eax, edx
add eax, 0x40
add eax, ecx
mov ecx, esi
sar eax, 7
mov word [ebx], ax
movzx eax, byte [edi]
movzx edx, word [eax*2 + 0x105934f8]
mov eax, dword [esp + 0x4c]
movzx eax, byte [eax]
movzx eax, word [eax*2 + 0x105934f8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x10593470]
mov eax, dword [eax*4 + 0x10593474]
imul eax, edx
add eax, 0x40
add eax, ecx
mov ecx, dword [esp + 0x88]
sar eax, 7
mov word [ebx + 2], ax
mov eax, dword [esp + 0x4c]
movzx eax, byte [ecx + eax]
movzx edx, word [eax*2 + 0x105934f8]
movzx eax, byte [ecx + edi]
mov ecx, esi
add edi, dword [esp + 0x74]
movzx eax, word [eax*2 + 0x105934f8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x10593470]
mov eax, dword [eax*4 + 0x10593474]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, dword [esp + 0xac]
sar eax, 7
mov word [ebx + 4], ax
add ebx, 8
mov eax, dword [esp + 0x4c]
add eax, dword [esp + 0x74]
mov dword [esp + 0x4c], eax
sub ebp, 1
jne 0x101b55b0
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x3c]
test bl, 1
je 0x101b5dd1
movzx eax, byte [eax + edi]
mov ebx, 0x200
mov edi, dword [esp + 0x14]
mov ecx, ebx
movzx edx, word [eax*2 + 0x105934f8]
shl edx, 2
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x10593470]
mov eax, dword [eax*4 + 0x10593474]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, ebx
sar eax, 7
mov word [edi], ax
mov eax, dword [esp + 0x5c]
movzx eax, byte [eax + ebp]
movzx edx, word [eax*2 + 0x105934f8]
shl edx, 2
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x10593470]
mov eax, dword [eax*4 + 0x10593474]
imul eax, edx
add eax, 0x40
add eax, ecx
sar eax, 7
mov word [edi + 2], ax
mov eax, dword [esp + 0x5c]
movzx eax, byte [eax + esi]
movzx ecx, word [eax*2 + 0x105934f8]
shl ecx, 2
mov eax, ecx
and ecx, 0x1ff
sar eax, 9
sub ebx, ecx
imul ebx, dword [eax*4 + 0x10593470]
mov eax, dword [eax*4 + 0x10593474]
imul eax, ecx
add eax, 0x40
add eax, ebx
sar eax, 7
mov word [edi + 4], ax
jmp 0x101b5dd1
push ebp
call dword [0x10595cd8]
jmp 0x101b5503
mov edx, dword [esp + 0x28]
mov dword [esp + 0x34], 0
test edx, edx
jle 0x101b550a
mov eax, ebp
test ebx, ebx
jne 0x101b583a
mov ebp, dword [esp + 0x10]
sub eax, edi
mov esi, dword [esp + 0x1d0]
sub ebp, edi
mov dword [esp + 0x8c], ebp
mov ebx, edi
mov ebp, dword [esp + 0x68]
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x88], eax
movzx eax, byte [eax + ebx]
imul ecx, eax, 0x1914
movzx eax, byte [edi + ebx]
imul eax, eax, 0x8123
add ecx, eax
movzx eax, byte [ebx]
imul eax, eax, 0x41c7
add ecx, 0x108000
add ebx, esi
add eax, ecx
mov ecx, dword [esp + 0x34]
shr eax, 0x10
mov byte [ecx + ebp], al
inc ecx
mov eax, dword [esp + 0x88]
mov dword [esp + 0x34], ecx
cmp ecx, edx
jl 0x101b57f2
jmp 0x101b5511
sub eax, esi
mov dword [esp + 0x70], 0
mov ebp, edi
mov dword [esp + 0x88], eax
mov ecx, esi
sub ebp, esi
mov dword [esp + 0x34], ecx
mov dword [esp + 0x74], ebp
nop dword [eax]
movzx eax, byte [ecx + eax]
movzx ebx, byte [ecx]
movzx ebp, byte [ecx + ebp]
mov esi, dword [esp + 0x44]
mov dword [esp + 0x8c], eax
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov edi, dword [esi + 0xe4]
mov ecx, dword [esi + edx*4 + 8]
sub ecx, dword [esi + eax*4 + 8]
lea esi, [ecx - 0x80000000]
cmovns esi, ecx
mov ecx, dword [esp + 0x44]
mov dword [ecx + edx*4 + 8], esi
xor edx, edx
inc dword [ecx]
mov eax, dword [ecx]
cmp eax, 0x37
cmove eax, edx
inc dword [ecx + 4]
mov dword [ecx], eax
mov eax, dword [ecx + 4]
cmp eax, 0x37
cmove eax, edx
mov edx, dword [esp + 0x28]
mov dword [ecx + 4], eax
lea ecx, [esi + esi]
sar ecx, 0x10
imul ecx, edi
imul eax, ebx, 0x8123
mov ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x1d0]
sar ecx, 8
add ecx, eax
imul eax, ebp, 0x41c7
mov ebp, dword [esp + 0x74]
add ecx, eax
imul eax, dword [esp + 0x8c], 0x1914
add eax, 0x108000
add eax, ecx
mov ecx, dword [esp + 0x68]
sar eax, 0x10
mov byte [ebx + ecx], al
inc ebx
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x88]
add ecx, esi
mov dword [esp + 0x34], ecx
mov dword [esp + 0x70], ebx
cmp ebx, edx
jl 0x101b5860
jmp 0x101b5511
mov esi, dword [esp + 0x54]
xor eax, eax
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x24], esi
mov dword [esp + 0x4c], eax
test edx, edx
jle 0x101b5c12
mov ebx, dword [esp + 0x40]
mov ecx, ebp
mov eax, ebx
mov dword [esp + 0x64], ecx
sub ebx, dword [esp + 0x10]
sub eax, edi
mov dword [esp + 0x8c], eax
mov eax, ebp
mov ebp, dword [esp + 0x1c]
sub eax, edi
mov dword [esp + 0x70], eax
mov eax, ebp
sub eax, edi
mov dword [esp + 0x88], ebx
mov dword [esp + 0x18], eax
mov ebx, 0x200
mov eax, esi
sub eax, edi
sub ebp, dword [esp + 0x10]
mov dword [esp + 0x74], eax
lea eax, [edx*8]
mov dword [esp + 0x6c], ebp
lea ebp, [edi + 4]
mov dword [esp + 0x4c], eax
nop word [eax + eax]
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x88]
movzx eax, byte [eax + ebp]
movzx ecx, byte [edx + ecx]
mov dword [esp + 0x14], eax
add eax, ecx
add eax, eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0xac], eax
cmp eax, 0x3fc
je 0x101b5adb
test eax, eax
je 0x101b5adb
mov esi, dword [eax*4 + 0x102eb3d8]
movzx eax, byte [ebp - 4]
movzx edx, word [eax*2 + 0x105934f8]
movzx eax, byte [ebp]
imul edx, ecx
mov ecx, ebx
movzx eax, word [eax*2 + 0x105934f8]
imul eax, dword [esp + 0x14]
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 + 0x10593470]
mov eax, dword [eax*4 + 0x10593474]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, ebx
sar eax, 7
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x70]
movzx eax, byte [eax + ebp]
movzx edx, word [eax*2 + 0x105934f8]
mov eax, dword [esp + 0x64]
imul edx, dword [esp + 0x14]
movzx eax, byte [eax]
movzx eax, word [eax*2 + 0x105934f8]
imul eax, dword [esp + 0x34]
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 + 0x10593470]
mov eax, dword [eax*4 + 0x10593474]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, dword [esp + 0x6c]
sar eax, 7
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x64]
movzx eax, byte [ecx + eax]
movzx edx, word [eax*2 + 0x105934f8]
mov eax, dword [esp + 0x18]
imul edx, dword [esp + 0x34]
movzx eax, byte [eax + ebp]
movzx eax, word [eax*2 + 0x105934f8]
imul eax, dword [esp + 0x14]
add edx, eax
imul edx, esi
mov esi, dword [esp + 0x24]
add edx, edx
shr edx, 0x11
jmp 0x101b5b9c
movzx eax, byte [ebp - 4]
mov ecx, ebx
movzx edx, word [eax*2 + 0x105934f8]
movzx eax, byte [ebp]
movzx eax, word [eax*2 + 0x105934f8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x10593470]
mov eax, dword [eax*4 + 0x10593474]
imul eax, edx
add eax, 0x40
add eax, ecx
mov ecx, ebx
sar eax, 7
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x70]
movzx eax, byte [eax + ebp]
movzx edx, word [eax*2 + 0x105934f8]
mov eax, dword [esp + 0x64]
movzx eax, byte [eax]
movzx eax, word [eax*2 + 0x105934f8]
add edx, eax
add edx, edx
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x10593470]
mov eax, dword [eax*4 + 0x10593474]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, dword [esp + 0x6c]
sar eax, 7
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x64]
movzx eax, byte [ecx + eax]
movzx edx, word [eax*2 + 0x105934f8]
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + ebp]
movzx eax, word [eax*2 + 0x105934f8]
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 + 0x10593470]
mov eax, dword [eax*4 + 0x10593474]
imul eax, edx
add ecx, 0x40
add ecx, eax
mov eax, dword [esp + 0x2c]
mov word [esi], ax
mov eax, dword [esp + 0x50]
mov word [esi + 2], ax
mov eax, dword [esp + 0x74]
sar ecx, 7
mov word [eax + ebp], cx
add ebp, 8
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0xac]
add ecx, 8
mov word [esi + 6], ax
add esi, 8
sub dword [esp + 0x94], 1
mov dword [esp + 0x64], ecx
mov dword [esp + 0x24], esi
jne 0x101b59a0
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x4c]
mov ebp, dword [esp + 0x1c]
test bl, 1
je 0x101b5dd1
mov ecx, dword [esp + 0x40]
movzx ebx, byte [ecx + eax]
mov dword [esp + 0x14], ebx
lea ecx, [ebx*4]
cmp ecx, 0x3fc
je 0x101b5d00
test ecx, ecx
je 0x101b5d00
movzx eax, byte [edi + eax]
mov esi, dword [ecx*4 + 0x102eb3d8]
mov edi, dword [esp + 0x4c]
movzx edx, word [eax*2 + 0x105934f8]
imul edx, ebx
mov ebx, 0x200
mov ecx, ebx
imul edx, esi
shl edx, 2
shr edx, 0x11
mov eax, edx
and edx, 0x1ff
sub ecx, edx
sar eax, 9
imul ecx, dword [eax*4 + 0x10593470]
mov eax, dword [eax*4 + 0x10593474]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, ebx
sar eax, 7
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + edi]
movzx edx, word [eax*2 + 0x105934f8]
imul edx, dword [esp + 0x14]
imul edx, esi
shl edx, 2
shr edx, 0x11
mov eax, edx
and edx, 0x1ff
sub ecx, edx
sar eax, 9
imul ecx, dword [eax*4 + 0x10593470]
imul edx, dword [eax*4 + 0x10593474]
movzx eax, byte [edi + ebp]
add ecx, 0x40
add edx, ecx
movzx ecx, word [eax*2 + 0x105934f8]
imul ecx, dword [esp + 0x14]
imul ecx, esi
mov esi, dword [esp + 0x24]
shl ecx, 2
shr ecx, 0x11
jmp 0x101b5d8b
movzx eax, byte [edi + eax]
mov ebx, 0x200
mov edi, dword [esp + 0x4c]
mov ecx, ebx
movzx edx, word [eax*2 + 0x105934f8]
shl edx, 2
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x10593470]
mov eax, dword [eax*4 + 0x10593474]
imul eax, edx
add ecx, 0x40
add eax, ecx
mov ecx, ebx
sar eax, 7
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + edi]
movzx edx, word [eax*2 + 0x105934f8]
shl edx, 2
mov eax, edx
and edx, 0x1ff
sar eax, 9
sub ecx, edx
imul ecx, dword [eax*4 + 0x10593470]
imul edx, dword [eax*4 + 0x10593474]
movzx eax, byte [edi + ebp]
add ecx, 0x40
add edx, ecx
movzx ecx, word [eax*2 + 0x105934f8]
shl ecx, 2
mov eax, ecx
sar edx, 7
sar eax, 9
and ecx, 0x1ff
sub ebx, ecx
mov word [esi + 2], dx
imul ecx, dword [eax*4 + 0x10593474]
imul ebx, dword [eax*4 + 0x10593470]
mov eax, dword [esp + 0x34]
mov word [esi], ax
add ecx, 0x40
add ecx, ebx
sar ecx, 7
mov word [esi + 4], cx
mov ecx, dword [esp + 0x14]
lea eax, [ecx*4]
mov word [esi + 6], ax
mov ebx, dword [esp + 0x44]
test ebx, ebx
jne 0x101b5e01
push dword [esp + 0x9c]
mov ecx, dword [esp + 0x84]
push ecx
push dword [esp + 0x98]
push dword [esp + 0x60]
call dword [0x10595ce0]
add esp, 0x10
jmp 0x101b5f81
cmp dword [esp + 0x9c], 0
jle 0x101b5f81
mov ebp, dword [esp + 0x54]
mov eax, dword [esp + 0x90]
add ebp, 4
sub eax, dword [esp + 0x80]
mov dword [esp + 0x90], eax
nop dword [eax + eax]
movzx eax, word [ebp - 4]
mov edx, dword [ebx]
mov edi, dword [ebx + 0xe4]
mov dword [esp + 0x6c], eax
movzx eax, word [ebp - 2]
mov ecx, dword [ebx + edx*4 + 8]
mov dword [esp + 0x34], eax
movzx eax, word [ebp]
mov dword [esp + 0x70], 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 + 0x34], 0x4a89
imul ecx, edi
sar ecx, 8
sub ecx, eax
imul eax, dword [esp + 0x6c], 0x25f7
sub ecx, eax
imul eax, dword [esp + 0x70], 0x7080
add eax, 0x2020000
add eax, ecx
sar eax, 0x12
test eax, 0xffffff00
je 0x101b5ecb
sar eax, 0x1f
and eax, 0xffffff01
add eax, 0xff
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x90]
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 + 0x34], 0x5e34
imul ecx, edi
sar ecx, 8
sub ecx, eax
imul eax, dword [esp + 0x70], 0x124c
sub ecx, eax
imul eax, dword [esp + 0x6c], 0x7080
add eax, 0x2020000
add eax, ecx
sar eax, 0x12
test eax, 0xffffff00
je 0x101b5f5f
sar eax, 0x1f
and eax, 0xffffff01
add eax, 0xff
mov ecx, dword [esp + 0x80]
add ebp, 8
mov byte [ecx], al
inc ecx
sub dword [esp + 0x9c], 1
mov dword [esp + 0x80], ecx
jne 0x101b5e30
push dword [esp + 0x54]
call fcn.101bacc0
add esp, 4
mov eax, 1
jmp 0x101b5f96
xor eax, eax
mov ecx, dword [esp + 0x1b8]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1026b168
add esp, 0x1ac
ret