Function at 0x1008b200
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa
Hash data using crc32b
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x478
mov eax, dword [0x10108c80]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov edi, dword [ebp + 8]
push edi
mov dword [ebp - 0x460], edi
mov dword [ebp - 0x478], 0
mov byte [edi + 0x56d], 1
call fcn.1008da50
add esp, 4
test eax, eax
je 0x1008c920
mov al, byte [edi + 0x56b]
test al, 2
jne 0x1008b263
mov dword [edi + 0x70], 0x22
xor eax, eax
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100ad4b8
mov esp, ebp
pop ebp
ret
test al, 4
jne 0x1008b24a
test al, 1
jne 0x1008b24a
cmp dword [edi + 0x468], 1
jne 0x1008b24a
mov al, byte [edi + 0x46c]
cmp al, 0x1e
je 0x1008b2f0
cmp al, 0x40
jne 0x1008b24a
push 6
lea eax, [ebp - 0xc]
push eax
push edi
call fcn.10089110
add esp, 0xc
test eax, eax
je 0x1008b24a
cmp byte [ebp - 0xc], 0x66
jne 0x1008b24a
cmp byte [ebp - 0xb], 0x69
jne 0x1008b24a
cmp byte [ebp - 0xa], 0x73
jne 0x1008b24a
cmp byte [ebp - 9], 0x68
jne 0x1008b24a
cmp byte [ebp - 8], 0x65
jne 0x1008b24a
cmp byte [ebp - 7], 0x61
jne 0x1008b24a
push edi
call fcn.10088d90
add esp, 4
cmp al, 0x64
jne 0x1008b24a
push edi
call fcn.10088d90
add esp, 4
test al, al
jne 0x1008b24a
mov dword [edi + 0x70], 0x26
xor eax, eax
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100ad4b8
mov esp, ebp
pop ebp
ret
push edi
call fcn.10088d90
add esp, 4
cmp al, 1
jne 0x1008b24a
push 6
lea eax, [ebp - 0xc]
push eax
push edi
call fcn.10089110
add esp, 0xc
test eax, eax
jne 0x1008b32b
mov dword [edi + 0x70], 0xa
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100ad4b8
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0xc]
push eax
call fcn.1008fb20
add esp, 4
test eax, eax
je 0x1008b24a
push edi
call fcn.10088c30
add esp, 4
test eax, eax
jne 0x1008b24a
push edi
call fcn.10088d90
movzx eax, al
add esp, 4
mov dword [edi + 4], eax
test eax, eax
je 0x1008b24a
cmp eax, 0x10
jbe 0x1008b385
mov dword [edi + 0x70], 5
xor eax, eax
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100ad4b8
mov esp, ebp
pop ebp
ret
push edi
call fcn.10088c30
add esp, 4
mov dword [edi], eax
test eax, eax
je 0x1008b24a
push edi
call fcn.10088c30
push edi
call fcn.10088c30
push edi
call fcn.10088c30
push edi
call fcn.10088d90
movzx edx, al
add esp, 0x10
mov esi, edx
mov eax, 1
and esi, 0xf
shr edx, 4
mov ecx, esi
shl eax, cl
mov ecx, edx
mov dword [edi + 0x7c], eax
mov eax, 1
shl eax, cl
mov dword [edi + 0x80], eax
lea eax, [esi - 6]
cmp eax, 7
ja 0x1008c919
lea eax, [edx - 6]
cmp eax, 7
ja 0x1008c919
cmp esi, edx
ja 0x1008c919
push edi
call fcn.10088d90
add esp, 4
test al, 1
je 0x1008b24a
push edi
call fcn.1008da50
add esp, 4
test eax, eax
je 0x1008c920
push edi
call fcn.1008d920
add esp, 4
test eax, eax
je 0x1008c920
push edi
call fcn.1008a7a0
add esp, 4
test eax, eax
je 0x1008c920
cmp byte [edi + 0x56c], 0
jne 0x1008b46b
cmp dword [edi + 0x574], 0
je 0x1008b45e
mov dword [edi + 0x580], 0
jmp 0x1008c919
push edi
call fcn.1008a7a0
add esp, 4
test eax, eax
je 0x1008b44f
dec byte [edi + 0x56c]
inc dword [edi + 0x584]
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x1008b48b
cmp eax, dword [edi + 0x34]
jae 0x1008b49d
mov cl, byte [eax]
inc eax
mov dword [edi + 0x2c], eax
jmp 0x1008b4a6
push dword [edi + 0x20]
call fcn.10086f40
mov ecx, eax
add esp, 4
cmp ecx, 0xffffffff
jne 0x1008b4a6
xor cl, cl
mov dword [edi + 0x6c], 1
mov dword [edi + 0x580], 0
cmp cl, 3
jne 0x1008c919
xor esi, esi
nop dword [eax + eax]
cmp byte [edi + 0x56c], 0
jne 0x1008b4e9
cmp dword [edi + 0x574], 0
je 0x1008b4d7
or cl, 0xff
jmp 0x1008b524
push edi
call fcn.1008a7a0
add esp, 4
test eax, eax
jne 0x1008b4e9
or cl, 0xff
jmp 0x1008b524
dec byte [edi + 0x56c]
inc dword [edi + 0x584]
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x1008b509
cmp eax, dword [edi + 0x34]
jae 0x1008b51b
mov cl, byte [eax]
inc eax
mov dword [edi + 0x2c], eax
jmp 0x1008b524
push dword [edi + 0x20]
call fcn.10086f40
mov ecx, eax
add esp, 4
cmp ecx, 0xffffffff
jne 0x1008b524
xor cl, cl
mov dword [edi + 0x6c], 1
mov byte [ebp + esi - 0xc], cl
inc esi
mov dword [edi + 0x580], 0
cmp esi, 6
jl 0x1008b4c0
lea eax, [ebp - 0xc]
push eax
call fcn.1008fb20
add esp, 4
test eax, eax
je 0x1008c919
push edi
call fcn.10088d20
mov dword [ebp - 0x448], eax
lea ecx, [eax + 1]
push ecx
push edi
call fcn.1008b0f0
add esp, 0xc
mov dword [edi + 0x14], eax
test eax, eax
je 0x1008c85d
mov ecx, dword [ebp - 0x448]
xor esi, esi
test ecx, ecx
jle 0x1008b603
cmp byte [edi + 0x56c], 0
jne 0x1008b5a9
cmp dword [edi + 0x574], 0
je 0x1008b597
or cl, 0xff
jmp 0x1008b5e4
push edi
call fcn.1008a7a0
add esp, 4
test eax, eax
jne 0x1008b5a9
or cl, 0xff
jmp 0x1008b5e4
dec byte [edi + 0x56c]
inc dword [edi + 0x584]
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x1008b5c9
cmp eax, dword [edi + 0x34]
jae 0x1008b5db
mov cl, byte [eax]
inc eax
mov dword [edi + 0x2c], eax
jmp 0x1008b5e4
push dword [edi + 0x20]
call fcn.10086f40
mov ecx, eax
add esp, 4
cmp ecx, 0xffffffff
jne 0x1008b5e4
xor cl, cl
mov dword [edi + 0x6c], 1
mov eax, dword [edi + 0x14]
mov dword [edi + 0x580], 0
mov byte [esi + eax], cl
inc esi
cmp esi, dword [ebp - 0x448]
jl 0x1008b580
mov ecx, dword [ebp - 0x448]
mov eax, dword [edi + 0x14]
push edi
mov byte [ecx + eax], 0
call fcn.10088d20
add esp, 4
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], 0
test eax, eax
jle 0x1008b639
shl eax, 2
push eax
push edi
call fcn.1008b0f0
add esp, 8
mov dword [edi + 0x1c], eax
test eax, eax
je 0x1008c85d
xor esi, esi
mov dword [ebp - 0x43c], esi
cmp dword [edi + 0x18], esi
jle 0x1008b780
nop word [eax + eax]
push edi
call fcn.10088d20
mov edx, eax
add esp, 4
mov eax, dword [edi + 0x5c]
mov dword [ebp - 0x448], edx
lea ecx, [edx + 8]
and ecx, 0xfffffff8
add dword [edi + 8], ecx
test eax, eax
je 0x1008b694
mov esi, dword [edi + 0x64]
add ecx, esi
mov dword [ebp - 0x454], esi
mov esi, dword [ebp - 0x43c]
cmp ecx, dword [edi + 0x68]
jg 0x1008b6ab
mov dword [edi + 0x64], ecx
mov ecx, dword [ebp - 0x454]
add ecx, eax
jmp 0x1008b6ad
test ecx, ecx
je 0x1008b6ab
push ecx
call fcn.100b304b
mov edx, dword [ebp - 0x448]
add esp, 4
mov ecx, eax
jmp 0x1008b6ad
xor ecx, ecx
mov eax, dword [edi + 0x1c]
mov dword [eax + esi*4], ecx
mov eax, dword [edi + 0x1c]
cmp dword [eax + esi*4], 0
je 0x1008c85d
xor esi, esi
test edx, edx
jle 0x1008b760
mov edx, dword [ebp - 0x43c]
cmp byte [edi + 0x56c], 0
jne 0x1008b6f9
cmp dword [edi + 0x574], 0
je 0x1008b6e7
or cl, 0xff
jmp 0x1008b73a
push edi
call fcn.1008a7a0
add esp, 4
test eax, eax
jne 0x1008b6f9
or cl, 0xff
jmp 0x1008b734
dec byte [edi + 0x56c]
inc dword [edi + 0x584]
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x1008b719
cmp eax, dword [edi + 0x34]
jae 0x1008b72b
mov cl, byte [eax]
inc eax
mov dword [edi + 0x2c], eax
jmp 0x1008b734
push dword [edi + 0x20]
call fcn.10086f40
mov ecx, eax
add esp, 4
cmp ecx, 0xffffffff
jne 0x1008b734
xor cl, cl
mov dword [edi + 0x6c], 1
mov edx, dword [ebp - 0x43c]
mov eax, dword [edi + 0x1c]
mov dword [edi + 0x580], 0
mov eax, dword [eax + edx*4]
mov byte [esi + eax], cl
inc esi
cmp esi, dword [ebp - 0x448]
jl 0x1008b6d0
mov edx, dword [ebp - 0x448]
mov esi, dword [ebp - 0x43c]
mov eax, dword [edi + 0x1c]
mov eax, dword [eax + esi*4]
inc esi
mov dword [ebp - 0x43c], esi
mov byte [edx + eax], 0
cmp esi, dword [edi + 0x18]
jl 0x1008b650
cmp byte [edi + 0x56c], 0
jne 0x1008b7b3
cmp dword [edi + 0x574], 0
je 0x1008b79e
mov dword [edi + 0x580], 0
jmp 0x1008b801
push edi
call fcn.1008a7a0
add esp, 4
test eax, eax
jne 0x1008b7b3
mov dword [edi + 0x580], eax
jmp 0x1008b801
dec byte [edi + 0x56c]
inc dword [edi + 0x584]
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x1008b7d3
cmp eax, dword [edi + 0x34]
jae 0x1008b7e5
mov cl, byte [eax]
inc eax
mov dword [edi + 0x2c], eax
jmp 0x1008b7ee
push dword [edi + 0x20]
call fcn.10086f40
mov ecx, eax
add esp, 4
cmp ecx, 0xffffffff
jne 0x1008b7ee
xor cl, cl
mov dword [edi + 0x6c], 1
mov dword [edi + 0x580], 0
test cl, 1
je 0x1008c919
movzx eax, byte [edi + 0x56c]
push eax
push edi
call fcn.1008b1b0
add esp, 8
mov byte [edi + 0x56c], 0
nop dword [eax]
push edi
call fcn.1008a7a0
mov esi, eax
add esp, 4
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x1008b846
lea ecx, [eax + esi]
mov dword [edi + 0x2c], ecx
cmp ecx, dword [edi + 0x34]
jb 0x1008b85e
mov dword [edi + 0x6c], 1
jmp 0x1008b85e
push dword [edi + 0x20]
call fcn.10086fe0
push 0
add eax, esi
push eax
push dword [edi + 0x20]
call fcn.10086f90
add esp, 0x10
mov byte [edi + 0x56c], 0
test esi, esi
jne 0x1008b820
push edi
call fcn.1008d920
add esp, 4
test eax, eax
je 0x1008c920
cmp byte [edi + 0x3c], 0
je 0x1008b89c
push edi
call fcn.1008a5c0
add esp, 4
test eax, eax
jne 0x1008b89c
cmp dword [edi + 0x70], 0x15
jne 0x1008c920
jmp 0x1008c919
xor edi, edi
nop
mov eax, edi
shl eax, 0x18
cmp eax, 0x80000000
sbb ecx, ecx
add eax, eax
and ecx, 0xfb3ee249
add ecx, 0x4c11db7
xor ecx, eax
cmp ecx, 0x80000000
sbb edx, edx
and edx, 0xfb3ee249
lea eax, [ecx + ecx]
add edx, 0x4c11db7
xor edx, eax
cmp edx, 0x80000000
sbb ecx, ecx
and ecx, 0xfb3ee249
lea eax, [edx + edx]
add ecx, 0x4c11db7
xor ecx, eax
cmp ecx, 0x80000000
sbb edx, edx
and edx, 0xfb3ee249
lea eax, [ecx + ecx]
add edx, 0x4c11db7
xor edx, eax
cmp edx, 0x80000000
sbb ecx, ecx
and ecx, 0xfb3ee249
lea eax, [edx + edx]
add ecx, 0x4c11db7
xor ecx, eax
cmp ecx, 0x80000000
sbb edx, edx
and edx, 0xfb3ee249
lea eax, [ecx + ecx]
add edx, 0x4c11db7
xor edx, eax
cmp edx, 0x80000000
sbb esi, esi
and esi, 0xfb3ee249
lea eax, [edx + edx]
add esi, 0x4c11db7
xor esi, eax
cmp esi, 0x80000000
sbb ecx, ecx
and ecx, 0xfb3ee249
lea eax, [esi + esi]
add ecx, 0x4c11db7
xor ecx, eax
mov dword [edi*4 + 0x10110d58], ecx
inc edi
cmp edi, 0x100
jl 0x1008b8a0
mov edi, dword [ebp - 0x460]
cmp byte [edi + 0x56c], 0
jne 0x1008b9ac
cmp dword [edi + 0x574], 0
jne 0x1008b44f
push edi
call fcn.1008a7a0
add esp, 4
test eax, eax
je 0x1008b44f
dec byte [edi + 0x56c]
inc dword [edi + 0x584]
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x1008b9cc
cmp eax, dword [edi + 0x34]
jae 0x1008b9de
mov cl, byte [eax]
inc eax
mov dword [edi + 0x2c], eax
jmp 0x1008b9e7
push dword [edi + 0x20]
call fcn.10086f40
mov ecx, eax
add esp, 4
cmp ecx, 0xffffffff
jne 0x1008b9e7
xor cl, cl
mov dword [edi + 0x6c], 1
mov dword [edi + 0x580], 0
cmp cl, 5
jne 0x1008c919
xor esi, esi
nop dword [eax]
cmp byte [edi + 0x56c], 0
jne 0x1008ba29
cmp dword [edi + 0x574], 0
je 0x1008ba17
or cl, 0xff
jmp 0x1008ba64
push edi
call fcn.1008a7a0
add esp, 4
test eax, eax
jne 0x1008ba29
or cl, 0xff
jmp 0x1008ba64
dec byte [edi + 0x56c]
inc dword [edi + 0x584]
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x1008ba49
cmp eax, dword [edi + 0x34]
jae 0x1008ba5b
mov cl, byte [eax]
inc eax
mov dword [edi + 0x2c], eax
jmp 0x1008ba64
push dword [edi + 0x20]
call fcn.10086f40
mov ecx, eax
add esp, 4
cmp ecx, 0xffffffff
jne 0x1008ba64
xor cl, cl
mov dword [edi + 0x6c], 1
mov byte [ebp + esi - 0xc], cl
inc esi
mov dword [edi + 0x580], 0
cmp esi, 6
jl 0x1008ba00
lea eax, [ebp - 0xc]
push eax
call fcn.1008fb20
add esp, 4
test eax, eax
je 0x1008c919
push 8
push edi
call fcn.10088e50
inc eax
mov dword [edi + 0x84], eax
imul eax, eax, 0x830
push eax
push edi
call fcn.1008b0f0
mov ecx, eax
add esp, 0x10
mov dword [edi + 0x88], ecx
test ecx, ecx
je 0x1008c85d
imul eax, dword [edi + 0x84], 0x830
push eax
push 0
push ecx
call fcn.100aefd0
xor eax, eax
add esp, 0xc
mov dword [ebp - 0x45c], eax
cmp dword [edi + 0x84], eax
jle 0x1008c71c
imul esi, eax, 0x830
push 8
push edi
mov dword [ebp - 0x448], 0
add esi, dword [edi + 0x88]
mov dword [ebp - 0x468], esi
call fcn.10088e50
add esp, 8
cmp al, 0x42
jne 0x1008c919
push 8
push edi
call fcn.10088e50
add esp, 8
cmp al, 0x43
jne 0x1008c919
push 8
push edi
call fcn.10088e50
add esp, 8
cmp al, 0x56
jne 0x1008c919
push 8
push edi
call fcn.10088e50
push 8
push edi
mov byte [ebp - 0x435], al
call fcn.10088e50
movzx ecx, byte [ebp - 0x435]
shl eax, 8
add eax, ecx
push 8
push edi
mov dword [esi], eax
call fcn.10088e50
push 8
push edi
mov byte [ebp - 0x449], al
call fcn.10088e50
push 8
push edi
mov byte [ebp - 0x435], al
call fcn.10088e50
movzx ecx, byte [ebp - 0x435]
shl eax, 8
add eax, ecx
movzx ecx, byte [ebp - 0x449]
shl eax, 8
add eax, ecx
push 1
push edi
mov dword [esi + 4], eax
call fcn.10088e50
add esp, 0x30
mov dword [ebp - 0x454], eax
test eax, eax
je 0x1008bbb6
xor ecx, ecx
jmp 0x1008bbc3
push 1
push edi
call fcn.10088e50
add esp, 8
mov ecx, eax
cmp dword [esi], 0
mov byte [esi + 0x17], cl
jne 0x1008bbd5
cmp dword [esi + 4], 0
jne 0x1008c919
mov eax, dword [esi + 4]
mov edx, dword [edi + 0x5c]
add eax, 7
and eax, 0xfffffff8
test cl, cl
je 0x1008bc1d
test edx, edx
je 0x1008bc0a
mov ecx, dword [edi + 0x68]
sub ecx, eax
cmp ecx, dword [edi + 0x64]
jge 0x1008bbfd
xor edx, edx
mov dword [ebp - 0x43c], edx
jmp 0x1008bc57
add edx, ecx
mov dword [edi + 0x68], ecx
mov dword [ebp - 0x43c], edx
jmp 0x1008bc57
push eax
call fcn.100b304b
mov edx, eax
add esp, 4
mov dword [ebp - 0x43c], edx
jmp 0x1008bc57
add dword [edi + 8], eax
test edx, edx
je 0x1008bc35
mov ecx, dword [edi + 0x64]
add eax, ecx
cmp eax, dword [edi + 0x68]
jg 0x1008bc4c
mov dword [edi + 0x64], eax
add edx, ecx
jmp 0x1008bc4e
test eax, eax
je 0x1008bc4c
push eax
call fcn.100b304b
add esp, 4
mov dword [ebp - 0x43c], eax
mov edx, eax
jmp 0x1008bc54
xor edx, edx
mov dword [ebp - 0x43c], edx
mov dword [esi + 8], edx
test edx, edx
je 0x1008c85d
cmp dword [ebp - 0x454], 0
je 0x1008bd0c
xor ecx, ecx
push 5
push edi
mov dword [ebp - 0x444], ecx
call fcn.10088e50
mov ecx, dword [esi + 4]
inc eax
add esp, 8
mov dword [ebp - 0x440], eax
test ecx, ecx
jle 0x1008bd04
mov eax, dword [ebp - 0x444]
sub ecx, eax
push ecx
call fcn.10089170
push eax
push edi
call fcn.10088e50
mov edx, eax
add esp, 0xc
mov eax, dword [ebp - 0x440]
mov dword [ebp - 0x454], edx
cmp eax, 0x20
jge 0x1008c919
mov ecx, dword [ebp - 0x444]
add edx, ecx
mov dword [ebp - 0x464], edx
cmp edx, dword [esi + 4]
jg 0x1008c919
push dword [ebp - 0x454]
push eax
mov eax, dword [ebp - 0x43c]
add eax, ecx
push eax
call fcn.100aefd0
mov eax, dword [ebp - 0x464]
add esp, 0xc
inc dword [ebp - 0x440]
mov ecx, dword [esi + 4]
mov dword [ebp - 0x444], eax
cmp eax, ecx
jl 0x1008bc93
mov edx, dword [ebp - 0x43c]
jmp 0x1008bd81
mov ecx, dword [esi + 4]
mov dword [ebp - 0x444], 0
test ecx, ecx
jle 0x1008bd81
nop dword [eax]
cmp byte [esi + 0x17], 0
je 0x1008bd47
push 1
push edi
call fcn.10088e50
add esp, 8
test eax, eax
jne 0x1008bd47
mov edx, dword [ebp - 0x43c]
mov eax, dword [ebp - 0x444]
mov byte [edx + eax], 0xff
jmp 0x1008bd73
push 5
push edi
call fcn.10088e50
mov edx, dword [ebp - 0x43c]
inc al
mov ecx, dword [ebp - 0x444]
add esp, 8
inc dword [ebp - 0x448]
mov byte [edx + ecx], al
cmp al, 0x20
je 0x1008c919
mov eax, ecx
mov ecx, dword [esi + 4]
inc eax
mov dword [ebp - 0x444], eax
cmp eax, ecx
jl 0x1008bd20
mov al, byte [esi + 0x17]
test al, al
je 0x1008bea0
mov eax, ecx
sar eax, 2
cmp dword [ebp - 0x448], eax
jl 0x1008be9d
cmp ecx, dword [edi + 0x10]
jle 0x1008bda5
mov dword [edi + 0x10], ecx
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x5c]
add eax, 7
and eax, 0xfffffff8
add dword [edi + 8], eax
test ecx, ecx
je 0x1008bdce
mov edx, dword [edi + 0x64]
add eax, edx
cmp eax, dword [edi + 0x68]
jg 0x1008c856
mov dword [edi + 0x64], eax
lea eax, [edx + ecx]
jmp 0x1008bddf
test eax, eax
je 0x1008c856
push eax
call fcn.100b304b
add esp, 4
mov dword [esi + 8], eax
test eax, eax
je 0x1008c85d
push dword [esi + 4]
push dword [ebp - 0x43c]
push eax
call fcn.100aea50
add esp, 0xc
cmp dword [edi + 0x5c], 0
je 0x1008be10
mov eax, dword [esi + 4]
add eax, 7
and eax, 0xfffffff8
add dword [edi + 0x68], eax
jmp 0x1008be1e
push dword [ebp - 0x43c]
call fcn.100b2854
add esp, 4
mov eax, dword [esi + 8]
mov dword [ebp - 0x43c], eax
mov byte [esi + 0x17], 0
mov dword [ebp - 0x450], eax
xor eax, eax
xor ecx, ecx
cmp dword [esi + 4], eax
jle 0x1008be5a
mov edi, dword [ebp - 0x450]
mov dl, byte [edi + ecx]
cmp dl, 0xa
jbe 0x1008be4e
cmp dl, 0xff
je 0x1008be4e
inc eax
inc ecx
cmp ecx, dword [esi + 4]
jl 0x1008be40
mov edi, dword [ebp - 0x460]
cmp byte [esi + 0x17], 0
mov dword [esi + 0x82c], eax
mov dword [ebp - 0x444], 0
jne 0x1008bed3
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x5c]
lea eax, [eax*4 + 7]
and eax, 0xfffffff8
add dword [edi + 8], eax
test ecx, ecx
je 0x1008beb2
mov edx, dword [edi + 0x64]
add eax, edx
cmp eax, dword [edi + 0x68]
jg 0x1008c876
mov dword [edi + 0x64], eax
lea eax, [edx + ecx]
jmp 0x1008bec3
mov al, byte [esi + 0x17]
mov dword [ebp - 0x450], edx
test al, al
je 0x1008be31
mov eax, dword [ebp - 0x448]
jmp 0x1008be5a
test eax, eax
je 0x1008c876
push eax
call fcn.100b304b
add esp, 4
mov dword [esi + 0x20], eax
test eax, eax
je 0x1008c85d
jmp 0x1008bfb4
test eax, eax
je 0x1008bfa0
mov ecx, dword [edi + 0x5c]
add eax, 7
and eax, 0xfffffff8
add dword [edi + 8], eax
test ecx, ecx
je 0x1008bf01
mov edx, dword [edi + 0x64]
add eax, edx
cmp eax, dword [edi + 0x68]
jg 0x1008c87f
mov dword [edi + 0x64], eax
lea eax, [edx + ecx]
jmp 0x1008bf12
test eax, eax
je 0x1008c87f
push eax
call fcn.100b304b
add esp, 4
mov dword [esi + 8], eax
test eax, eax
je 0x1008c8a9
mov eax, dword [esi + 0x82c]
mov edx, dword [edi + 0x5c]
lea ecx, [eax*4 + 7]
and ecx, 0xfffffff8
test edx, edx
je 0x1008bf49
mov eax, dword [edi + 0x68]
sub eax, ecx
cmp eax, dword [edi + 0x64]
jl 0x1008c876
mov dword [edi + 0x68], eax
add eax, edx
jmp 0x1008bf52
push ecx
call fcn.100b304b
add esp, 4
mov dword [esi + 0x20], eax
test eax, eax
je 0x1008c85d
mov eax, dword [esi + 0x82c]
mov edx, dword [edi + 0x5c]
lea ecx, [eax*4 + 7]
and ecx, 0xfffffff8
test edx, edx
je 0x1008bf89
mov eax, dword [edi + 0x68]
sub eax, ecx
cmp eax, dword [edi + 0x64]
jl 0x1008c85d
mov dword [edi + 0x68], eax
add eax, edx
jmp 0x1008bf92
push ecx
call fcn.100b304b
add esp, 4
mov dword [ebp - 0x444], eax
test eax, eax
je 0x1008c85d
mov edx, dword [esi + 0x82c]
mov ecx, dword [esi + 4]
lea eax, [ecx + edx*8]
cmp eax, dword [edi + 0x10]
jbe 0x1008bfb4
mov dword [edi + 0x10], eax
push dword [ebp - 0x444]
push dword [esi + 4]
push dword [ebp - 0x43c]
push esi
call fcn.10087a70
add esp, 0x10
test eax, eax
je 0x1008c98c
mov ecx, dword [esi + 0x82c]
test ecx, ecx
je 0x1008c09e
mov edx, dword [edi + 0x5c]
lea ecx, [ecx*4 + 0xb]
and ecx, 0xfffffff8
add dword [edi + 8], ecx
test edx, edx
je 0x1008c00b
mov eax, dword [edi + 0x64]
add ecx, eax
cmp ecx, dword [edi + 0x68]
jg 0x1008c8c2
mov dword [edi + 0x64], ecx
add eax, edx
jmp 0x1008c01c
test ecx, ecx
je 0x1008c8c2
push ecx
call fcn.100b304b
add esp, 4
mov dword [esi + 0x824], eax
test eax, eax
je 0x1008c8cc
mov eax, dword [esi + 0x82c]
mov ecx, dword [edi + 0x5c]
lea eax, [eax*4 + 0xb]
and eax, 0xfffffff8
add dword [edi + 8], eax
test ecx, ecx
je 0x1008c059
mov edx, dword [edi + 0x64]
add eax, edx
cmp eax, dword [edi + 0x68]
jg 0x1008c89f
mov dword [edi + 0x64], eax
add ecx, edx
jmp 0x1008c06c
test eax, eax
je 0x1008c89f
push eax
call fcn.100b304b
add esp, 4
mov ecx, eax
mov dword [esi + 0x828], ecx
test ecx, ecx
je 0x1008c8a9
push dword [ebp - 0x444]
lea eax, [ecx + 4]
push dword [ebp - 0x43c]
mov dword [esi + 0x828], eax
push esi
mov dword [ecx], 0xffffffff
call fcn.10087d90
add esp, 0xc
cmp byte [esi + 0x17], 0
je 0x1008c11c
cmp dword [edi + 0x5c], 0
je 0x1008c0bf
mov eax, dword [esi + 0x82c]
lea eax, [eax*4 + 7]
and eax, 0xfffffff8
add dword [edi + 0x68], eax
jmp 0x1008c0cd
push dword [ebp - 0x444]
call fcn.100b2854
add esp, 4
cmp dword [edi + 0x5c], 0
je 0x1008c0e8
mov eax, dword [esi + 0x82c]
lea eax, [eax*4 + 7]
and eax, 0xfffffff8
add dword [edi + 0x68], eax
jmp 0x1008c0f3
push dword [esi + 0x20]
call fcn.100b2854
add esp, 4
cmp dword [edi + 0x5c], 0
je 0x1008c107
mov eax, dword [esi + 4]
add eax, 7
and eax, 0xfffffff8
add dword [edi + 0x68], eax
jmp 0x1008c115
push dword [ebp - 0x43c]
call fcn.100b2854
add esp, 4
mov dword [esi + 0x20], 0
or eax, 0xffffffff
lea edi, [esi + 0x24]
mov ecx, 0x200
rep stosd dword es:[edi], eax
cmp byte [esi + 0x17], 0
je 0x1008c137
mov ecx, dword [esi + 0x82c]
jmp 0x1008c13a
mov ecx, dword [esi + 4]
mov dword [ebp - 0x448], ecx
cmp ecx, 0x7fff
jle 0x1008c155
mov ecx, 0x7fff
mov dword [ebp - 0x448], ecx
jmp 0x1008c15d
test ecx, ecx
jle 0x1008c1fe
mov eax, dword [esi + 8]
xor edi, edi
cmp byte [eax + edi], 0xa
ja 0x1008c1f5
cmp byte [esi + 0x17], 0
je 0x1008c1bc
mov eax, dword [esi + 0x824]
mov eax, dword [eax + edi*4]
mov ecx, eax
and eax, 0xd5555555
shr ecx, 1
add eax, eax
and ecx, 0x55555555
or ecx, eax
mov eax, ecx
shr ecx, 2
and eax, 0xf3333333
and ecx, 0x33333333
shl eax, 2
or eax, ecx
mov edx, eax
and eax, 0xff0f0f0f
shr edx, 4
and edx, 0xf0f0f0f
shl eax, 4
or edx, eax
bswap edx
jmp 0x1008c1c2
mov eax, dword [esi + 0x20]
mov edx, dword [eax + edi*4]
cmp edx, 0x400
jae 0x1008c1ec
nop word [eax + eax]
mov word [esi + edx*2 + 0x24], di
mov eax, 1
mov ecx, dword [esi + 8]
mov cl, byte [ecx + edi]
shl eax, cl
add edx, eax
cmp edx, 0x400
jb 0x1008c1d0
mov ecx, dword [ebp - 0x448]
mov eax, dword [esi + 8]
inc edi
cmp edi, ecx
jl 0x1008c162
mov edi, dword [ebp - 0x460]
push 4
push edi
call fcn.10088e50
add esp, 8
mov byte [esi + 0x15], al
cmp al, 2
ja 0x1008c919
test al, al
je 0x1008c703
push 0x20
push edi
call fcn.10088e50
mov ecx, eax
mov edx, eax
and ecx, 0x1fffff
shr edx, 0x15
add esp, 8
and edx, 0x3ff
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x100e4ba0]
test eax, eax
jns 0x1008c25f
xorps xmm0, xmmword [0x100e9280]
cvtsd2ss xmm0, xmm0
lea eax, [edx - 0x314]
push eax
sub esp, 8
cvtss2sd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.100c1bfe
push 0x20
push edi
fstp dword [esi + 0xc]
call fcn.10088e50
mov ecx, eax
mov edx, eax
and ecx, 0x1fffff
shr edx, 0x15
add esp, 0x14
and edx, 0x3ff
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x100e4ba0]
test eax, eax
jns 0x1008c2bb
xorps xmm0, xmmword [0x100e9280]
cvtsd2ss xmm0, xmm0
lea eax, [edx - 0x314]
push eax
sub esp, 8
cvtss2sd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.100c1bfe
push 4
push edi
fstp dword [esi + 0x10]
call fcn.10088e50
inc al
push 1
push edi
mov byte [esi + 0x14], al
call fcn.10088e50
add esp, 0x1c
mov byte [esi + 0x16], al
cmp byte [esi + 0x15], 1
jne 0x1008c44f
mov eax, dword [esi + 4]
xorps xmm0, xmm0
mov edi, dword [esi]
mov dword [ebp - 0x450], eax
cvtsi2ss xmm0, eax
cvtps2pd xmm0, xmm0
call fcn.100b91e0
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, edi
divss xmm1, xmm0
cvtps2pd xmm0, xmm1
call fcn.100b8c50
sub esp, 8
movsd qword [ebp - 0x458], xmm0
fld qword [ebp - 0x458]
fstp qword [esp]
call fcn.100b9ad0
fstp qword [ebp - 0x458]
cvttsd2si esi, qword [ebp - 0x458]
xorps xmm0, xmm0
xorps xmm1, xmm1
cvtsi2sd xmm1, edi
cvtsi2ss xmm0, esi
addss xmm0, dword [0x100e2954]
cvtps2pd xmm0, xmm0
call fcn.100b71d0
movsd qword [ebp - 0x458], xmm0
fld qword [ebp - 0x458]
fstp qword [esp]
call fcn.100b9ad0
fstp qword [ebp - 0x458]
cvttsd2si eax, qword [ebp - 0x458]
add esp, 8
lea ecx, [esi + 1]
xorps xmm0, xmm0
xorps xmm1, xmm1
cmp eax, dword [ebp - 0x450]
cvtsi2sd xmm1, edi
cmovg ecx, esi
mov dword [ebp - 0x440], ecx
cvtsi2ss xmm0, ecx
addss xmm0, dword [0x100e2954]
cvtps2pd xmm0, xmm0
call fcn.100b71d0
mov esi, dword [ebp - 0x450]
xorps xmm2, xmm2
cvtsi2sd xmm2, esi
comisd xmm2, xmm0
jae 0x1008c8e5
movd xmm0, dword [ebp - 0x440]
cvtdq2ps xmm0, xmm0
movd xmm1, edi
cvtps2pd xmm0, xmm0
cvtdq2pd xmm1, xmm1
call fcn.100b71d0
sub esp, 8
movsd qword [ebp - 0x458], xmm0
fld qword [ebp - 0x458]
fstp qword [esp]
call fcn.100b9ad0
fstp qword [ebp - 0x458]
cvttsd2si eax, qword [ebp - 0x458]
add esp, 8
cmp eax, esi
jg 0x1008c8e5
mov eax, dword [ebp - 0x440]
test eax, eax
js 0x1008c8e5
mov edi, dword [ebp - 0x460]
mov esi, dword [ebp - 0x468]
jmp 0x1008c455
mov eax, dword [esi]
imul eax, dword [esi + 4]
mov dword [esi + 0x18], eax
test eax, eax
je 0x1008c919
add eax, eax
push eax
push edi
call fcn.1008b170
add esp, 8
mov dword [ebp - 0x43c], eax
test eax, eax
je 0x1008c85d
mov ecx, dword [esi + 0x18]
mov dword [ebp - 0x450], 0
test ecx, ecx
jle 0x1008c4c7
nop dword [eax + eax]
movzx eax, byte [esi + 0x14]
push eax
push edi
call fcn.10088e50
mov edx, eax
add esp, 8
cmp edx, 0xffffffff
je 0x1008c904
mov eax, dword [ebp - 0x450]
mov ecx, dword [ebp - 0x43c]
mov word [ecx + eax*2], dx
inc eax
mov ecx, dword [esi + 0x18]
mov dword [ebp - 0x450], eax
cmp eax, ecx
jl 0x1008c490
cmp byte [esi + 0x15], 1
xorps xmm0, xmm0
movss dword [ebp - 0x440], xmm0
jne 0x1008c674
mov al, byte [esi + 0x17]
mov byte [ebp - 0x435], al
test al, al
je 0x1008c4fe
mov ecx, dword [esi + 0x82c]
test ecx, ecx
je 0x1008c6ee
mov eax, dword [esi]
imul eax, ecx
jmp 0x1008c504
mov eax, dword [esi + 4]
imul eax, dword [esi]
shl eax, 2
push eax
push edi
call fcn.1008b0f0
add esp, 8
mov dword [esi + 0x1c], eax
test eax, eax
je 0x1008c932
mov dl, byte [ebp - 0x435]
test dl, dl
je 0x1008c52e
mov eax, dword [esi + 0x82c]
jmp 0x1008c531
mov eax, dword [esi + 4]
xor ecx, ecx
mov dword [ebp - 0x46c], eax
mov dword [ebp - 0x444], ecx
test eax, eax
jle 0x1008c66e
movss xmm1, dword [ebp - 0x440]
lea eax, [esi + 0x18]
mov dword [ebp - 0x474], eax
test dl, dl
je 0x1008c56d
mov eax, dword [esi + 0x828]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x470], eax
jmp 0x1008c575
mov eax, ecx
mov dword [ebp - 0x470], ecx
mov ecx, dword [esi]
mov dword [ebp - 0x448], 1
mov dword [ebp - 0x450], 0
test ecx, ecx
jle 0x1008c655
nop dword [eax]
nop word [eax + eax]
xor edx, edx
mov edi, dword [ebp - 0x474]
div dword [ebp - 0x448]
xor edx, edx
imul ecx, dword [ebp - 0x444]
div dword [edi]
mov edi, dword [ebp - 0x43c]
movzx eax, word [edi + edx*2]
mov edx, dword [ebp - 0x450]
add ecx, edx
mov edi, dword [ebp - 0x460]
movd xmm0, eax
mov eax, dword [esi + 0x1c]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [esi + 0x10]
addss xmm0, dword [esi + 0xc]
addss xmm0, xmm1
movss dword [eax + ecx*4], xmm0
cmp byte [esi + 0x16], 0
je 0x1008c5ff
movss dword [ebp - 0x440], xmm0
movaps xmm1, xmm0
mov ecx, dword [esi]
lea eax, [edx + 1]
mov dword [ebp - 0x450], eax
cmp eax, ecx
jge 0x1008c64f
mov eax, dword [ebp - 0x474]
xor edx, edx
mov eax, dword [eax]
mov dword [ebp - 0x440], eax
or eax, 0xffffffff
div dword [ebp - 0x440]
mov edx, dword [ebp - 0x448]
cmp edx, eax
mov eax, dword [ebp - 0x440]
ja 0x1008c907
imul eax, edx
mov dword [ebp - 0x448], eax
mov eax, dword [ebp - 0x470]
jmp 0x1008c5a0
mov dl, byte [ebp - 0x435]
mov ecx, dword [ebp - 0x444]
inc ecx
mov dword [ebp - 0x444], ecx
cmp ecx, dword [ebp - 0x46c]
jl 0x1008c558
mov byte [esi + 0x15], 2
jmp 0x1008c6ee
lea eax, [ecx*4]
push eax
push edi
call fcn.1008b0f0
mov edx, dword [esi + 0x18]
add esp, 8
mov dword [esi + 0x1c], eax
test eax, eax
je 0x1008c960
xor ecx, ecx
test edx, edx
jle 0x1008c6ee
movss xmm1, dword [ebp - 0x440]
mov edi, dword [ebp - 0x43c]
nop word [eax + eax]
movzx eax, word [edi + ecx*2]
movd xmm0, eax
mov eax, dword [esi + 0x1c]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [esi + 0x10]
addss xmm0, dword [esi + 0xc]
addss xmm0, xmm1
movss dword [eax + ecx*4], xmm0
cmp byte [esi + 0x16], 0
je 0x1008c6e2
movss dword [ebp - 0x440], xmm0
movaps xmm1, xmm0
inc ecx
cmp ecx, dword [esi + 0x18]
jl 0x1008c6b0
mov edi, dword [ebp - 0x460]
mov eax, dword [esi + 0x18]
add eax, eax
push eax
push dword [ebp - 0x43c]
push edi
call fcn.1008b140
add esp, 0xc
mov eax, dword [ebp - 0x45c]
inc eax
mov dword [ebp - 0x45c], eax
cmp eax, dword [edi + 0x84]
jl 0x1008bae5
push 6
push edi
xor esi, esi
call fcn.10088e50
add esp, 8
add al, 1
movzx eax, al
mov dword [ebp - 0x454], eax
je 0x1008c752
push 0x10
push edi
call fcn.10088e50
add esp, 8
test eax, eax
jne 0x1008c919
inc esi
cmp esi, dword [ebp - 0x454]
jl 0x1008c736
push 6
push edi
call fcn.10088e50
inc eax
mov dword [edi + 0x8c], eax
imul eax, eax, 0x63c
push eax
push edi
call fcn.1008b0f0
add esp, 0x10
mov dword [edi + 0x110], eax
test eax, eax
je 0x1008c85d
cmp dword [edi + 0x8c], 0
mov dword [ebp - 0x464], 0
jle 0x1008cd91
lea esi, [edi + 0x90]
mov dword [ebp - 0x43c], 0
mov dword [ebp - 0x454], esi
nop dword [eax]
push 0x10
push edi
call fcn.10088e50
movzx eax, ax
add esp, 8
mov word [esi], ax
cmp eax, 1
ja 0x1008c919
mov esi, dword [edi + 0x110]
add esi, dword [ebp - 0x43c]
mov dword [ebp - 0x474], esi
test ax, ax
je 0x1008cece
push 5
push edi
mov dword [ebp - 0x448], 0xffffffff
call fcn.10088e50
add esp, 8
mov byte [esi], al
mov dword [ebp - 0x45c], 0
test al, al
je 0x1008c99f
nop
push 4
push edi
call fcn.10088e50
mov edx, dword [ebp - 0x45c]
add esp, 8
mov byte [esi + edx + 1], al
movzx eax, al
cmp eax, dword [ebp - 0x448]
cmovle eax, dword [ebp - 0x448]
inc edx
mov ecx, eax
mov dword [ebp - 0x45c], edx
movzx eax, byte [esi]
mov dword [ebp - 0x448], ecx
cmp edx, eax
jl 0x1008c810
mov dword [ebp - 0x448], ecx
jmp 0x1008c9a2
mov dword [esi + 8], 0
mov dword [edi + 0x70], 3
xor eax, eax
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100ad4b8
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x20], 0
jmp 0x1008c85d
mov dword [esi + 8], 0
xor eax, eax
mov dword [edi + 0x70], 3
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100ad4b8
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x828], 0
mov dword [edi + 0x70], 3
xor eax, eax
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100ad4b8
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x824], 0
mov dword [edi + 0x70], 3
xor eax, eax
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100ad4b8
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x460]
pop edi
pop esi
mov dword [eax + 0x70], 0x14
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100ad4b8
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x18]
add eax, eax
push eax
push dword [ebp - 0x43c]
push edi
call fcn.1008b140
add esp, 0xc
mov dword [edi + 0x70], 0x14
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100ad4b8
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x18]
add eax, eax
push eax
push dword [ebp - 0x43c]
push edi
call fcn.1008b140
add esp, 0xc
mov dword [edi + 0x70], 3
xor eax, eax
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100ad4b8
mov esp, ebp
pop ebp
ret
lea eax, [edx + edx]
push eax
push dword [ebp - 0x43c]
push edi
call fcn.1008b140
add esp, 0xc
mov dword [edi + 0x70], 3
xor eax, eax
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100ad4b8
mov esp, ebp
pop ebp
ret
cmp byte [esi + 0x17], 0
je 0x1008c919
push 0
push dword [ebp - 0x444]
jmp 0x1008c910
or ecx, 0xffffffff
mov dword [ebp - 0x470], 0
test ecx, ecx
js 0x1008caa7
lea eax, [esi + 0x31]
mov dword [ebp - 0x444], eax
lea eax, [esi + 0x52]
mov dword [ebp - 0x440], eax
push 3
push edi
call fcn.10088e50
mov ecx, dword [ebp - 0x444]
inc al
push 2
push edi
mov byte [ecx - 0x10], al
call fcn.10088e50
mov ecx, dword [ebp - 0x444]
add esp, 0x10
mov byte [ecx], al
test al, al
je 0x1008ca13
push 8
push edi
call fcn.10088e50
mov ecx, dword [ebp - 0x444]
add esp, 8
mov byte [ecx + 0x10], al
movzx eax, al
cmp eax, dword [edi + 0x84]
jge 0x1008c919
mov cl, byte [ecx]
mov eax, 1
shl eax, cl
mov dword [ebp - 0x45c], 0
test eax, eax
jle 0x1008ca81
mov eax, dword [ebp - 0x440]
mov dword [ebp - 0x46c], eax
push 8
push edi
call fcn.10088e50
mov ecx, dword [ebp - 0x46c]
dec eax
add esp, 8
mov word [ecx], ax
cwde
cmp eax, dword [edi + 0x84]
jge 0x1008c919
mov edx, dword [ebp - 0x45c]
add ecx, 2
mov dword [ebp - 0x46c], ecx
mov eax, 1
mov ecx, dword [ebp - 0x444]
inc edx
mov dword [ebp - 0x45c], edx
mov cl, byte [ecx]
shl eax, cl
cmp edx, eax
jl 0x1008ca36
mov eax, dword [ebp - 0x470]
inc dword [ebp - 0x444]
inc eax
add dword [ebp - 0x440], 0x10
mov dword [ebp - 0x470], eax
cmp eax, dword [ebp - 0x448]
jle 0x1008c9c6
push 2
push edi
call fcn.10088e50
inc al
push 4
push edi
mov byte [esi + 0x634], al
call fcn.10088e50
xor ecx, ecx
mov byte [esi + 0x635], al
mov word [esi + 0x152], cx
mov edx, 1
mov cl, al
add esp, 0x10
shl dx, cl
xor ecx, ecx
mov word [esi + 0x154], dx
mov dword [esi + 0x638], 2
mov dword [ebp - 0x46c], ecx
cmp byte [esi], cl
jbe 0x1008cb75
nop dword [eax + eax]
movzx eax, byte [esi + ecx + 1]
mov dword [ebp - 0x468], eax
mov dword [ebp - 0x45c], 0
cmp byte [eax + esi + 0x21], 0
jbe 0x1008cb67
nop dword [eax]
movzx eax, byte [esi + 0x635]
push eax
push edi
call fcn.10088e50
mov ecx, dword [esi + 0x638]
add esp, 8
mov word [esi + ecx*2 + 0x152], ax
mov eax, dword [ebp - 0x468]
mov ecx, dword [ebp - 0x45c]
inc dword [esi + 0x638]
inc ecx
mov dword [ebp - 0x45c], ecx
movzx eax, byte [eax + esi + 0x21]
cmp ecx, eax
jl 0x1008cb20
mov ecx, dword [ebp - 0x46c]
movzx eax, byte [esi]
inc ecx
mov dword [ebp - 0x46c], ecx
cmp ecx, eax
jl 0x1008cb00
mov eax, dword [esi + 0x638]
xor ecx, ecx
test eax, eax
jle 0x1008cbb1
lea edx, [esi + 0x152]
nop word [eax + eax]
mov ax, word [edx]
lea edx, [edx + 2]
mov word [ebp + ecx*4 - 0x434], ax
mov word [ebp + ecx*4 - 0x432], cx
inc ecx
mov eax, dword [esi + 0x638]
cmp ecx, eax
jl 0x1008cb90
push 0x1008a880
push 4
push eax
lea eax, [ebp - 0x434]
push eax
call fcn.100c1710
mov ecx, dword [esi + 0x638]
add esp, 0x10
xor edx, edx
lea eax, [ecx - 1]
test eax, eax
jle 0x1008cc06
nop word [eax + eax]
mov ax, word [ebp + edx*4 - 0x434]
lea edi, [ebp - 0x430]
cmp ax, word [edi + edx*4]
mov edi, dword [ebp - 0x460]
je 0x1008c919
inc edx
lea eax, [ecx - 1]
cmp edx, eax
jl 0x1008cbe0
xor edx, edx
test ecx, ecx
jle 0x1008cc29
nop dword [eax]
mov al, byte [ebp + edx*4 - 0x432]
mov byte [edx + esi + 0x346], al
inc edx
mov ecx, dword [esi + 0x638]
cmp edx, ecx
jl 0x1008cc10
mov edx, 2
mov dword [ebp - 0x468], edx
cmp ecx, edx
jle 0x1008cd4e
lea eax, [esi + 0x445]
mov dword [ebp - 0x440], eax
mov eax, 0xfffffbbf
sub eax, esi
mov dword [ebp - 0x470], eax
nop word [eax + eax]
xor ecx, ecx
mov dword [ebp - 0x444], 0
xor eax, eax
mov dword [ebp - 0x448], ecx
mov dword [ebp - 0x45c], 0xffffffff
mov edi, 0x10000
test edx, edx
jle 0x1008cd19
mov ecx, dword [ebp - 0x440]
add ecx, 0x152
add ecx, esi
mov dword [ebp - 0x46c], ecx
nop
movzx edx, word [esi + eax*2 + 0x152]
mov ecx, edx
mov dword [ebp - 0x450], ecx
cmp ecx, dword [ebp - 0x45c]
jle 0x1008ccde
mov esi, dword [ebp - 0x46c]
mov ecx, dword [ebp - 0x470]
cmp dx, word [esi + ecx]
mov ecx, edx
mov esi, dword [ebp - 0x474]
jae 0x1008ccde
mov dword [ebp - 0x444], eax
mov dword [ebp - 0x45c], ecx
cmp ecx, edi
jge 0x1008cd08
mov esi, dword [ebp - 0x46c]
mov ecx, dword [ebp - 0x470]
cmp dx, word [esi + ecx]
mov esi, dword [ebp - 0x474]
mov ecx, dword [ebp - 0x450]
jbe 0x1008cd08
mov dword [ebp - 0x448], eax
mov edi, ecx
mov edx, dword [ebp - 0x468]
inc eax
cmp eax, edx
jl 0x1008cca0
mov ecx, dword [ebp - 0x448]
mov edi, dword [ebp - 0x440]
inc edx
mov eax, dword [ebp - 0x444]
mov dword [ebp - 0x468], edx
mov byte [edi - 1], al
mov byte [edi], cl
add edi, 2
mov ecx, dword [esi + 0x638]
mov dword [ebp - 0x440], edi
cmp edx, ecx
jl 0x1008cc60
mov edi, dword [ebp - 0x460]
mov eax, dword [ebp - 0x478]
cmp ecx, eax
mov esi, dword [ebp - 0x454]
cmovg eax, ecx
add dword [ebp - 0x43c], 0x63c
mov dword [ebp - 0x478], eax
add esi, 2
mov eax, dword [ebp - 0x464]
inc eax
mov dword [ebp - 0x454], esi
mov dword [ebp - 0x464], eax
cmp eax, dword [edi + 0x8c]
jl 0x1008c7b0
push 6
push edi
call fcn.10088e50
inc eax
mov dword [edi + 0x114], eax
lea eax, [eax + eax*2]
shl eax, 3
push eax
push edi
call fcn.1008b0f0
mov ecx, eax
add esp, 0x10
mov dword [edi + 0x198], ecx
test ecx, ecx
je 0x1008c85d
mov eax, dword [edi + 0x114]
lea eax, [eax + eax*2]
shl eax, 3
push eax
push 0
push ecx
call fcn.100aefd0
add esp, 0xc
mov dword [ebp - 0x464], 0
cmp dword [edi + 0x114], 0
jle 0x1008d29e
xor ecx, ecx
lea eax, [edi + 0x118]
mov dword [ebp - 0x468], ecx
mov dword [ebp - 0x450], eax
mov esi, dword [edi + 0x198]
push 0x10
push edi
add esi, ecx
call fcn.10088e50
mov ecx, dword [ebp - 0x450]
add esp, 8
movzx eax, ax
mov word [ecx], ax
cmp eax, 2
ja 0x1008c919
push 0x18
push edi
call fcn.10088e50
push 0x18
push edi
mov dword [esi], eax
call fcn.10088e50
add esp, 0x10
mov dword [esi + 4], eax
cmp eax, dword [esi]
jb 0x1008c919
push 0x18
push edi
call fcn.10088e50
inc eax
push 6
push edi
mov dword [esi + 8], eax
call fcn.10088e50
inc al
push 8
push edi
mov byte [esi + 0xc], al
call fcn.10088e50
mov byte [esi + 0xd], al
add esp, 0x18
movzx eax, al
cmp eax, dword [edi + 0x84]
jge 0x1008c919
mov dl, byte [esi + 0xc]
mov dword [ebp - 0x454], 0
test dl, dl
je 0x1008cf8d
push 3
push edi
mov byte [ebp - 0x449], 0
call fcn.10088e50
push 1
push edi
mov byte [ebp - 0x435], al
call fcn.10088e50
add esp, 0x10
test eax, eax
je 0x1008cf5f
push 5
push edi
call fcn.10088e50
add esp, 8
jmp 0x1008cf65
push 8
push edi
call fcn.10088e50
push 0x10
push edi
mov byte [esi], al
call fcn.10088e50
push 0x10
push edi
mov word [esi + 2], ax
call fcn.10088e50
push 6
push edi
mov word [esi + 4], ax
call fcn.10088e50
push 8
push edi
mov byte [esi + 6], al
call fcn.10088e50
push 4
push edi
mov byte [esi + 7], al
call fcn.10088e50
add esp, 0x30
mov dword [ebp - 0x454], 0
add al, 1
mov byte [esi + 8], al
je 0x1008cf46
push 8
push edi
call fcn.10088e50
mov ecx, dword [ebp - 0x454]
add esp, 8
mov byte [esi + ecx + 9], al
inc ecx
movzx eax, byte [esi + 8]
mov dword [ebp - 0x454], ecx
cmp ecx, eax
jl 0x1008cf22
mov dword [edi + 0x70], 4
xor eax, eax
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100ad4b8
mov esp, ebp
pop ebp
ret
mov al, byte [ebp - 0x449]
mov ecx, dword [ebp - 0x454]
mov dl, byte [esi + 0xc]
shl al, 3
add al, byte [ebp - 0x435]
mov byte [ebp + ecx - 0x4c], al
inc ecx
movzx eax, dl
mov dword [ebp - 0x454], ecx
cmp ecx, eax
jl 0x1008ce96
movzx eax, dl
mov edx, dword [edi + 0x5c]
shl eax, 4
add dword [edi + 8], eax
test edx, edx
je 0x1008cfb3
mov ecx, dword [edi + 0x64]
add eax, ecx
cmp eax, dword [edi + 0x68]
jg 0x1008d36b
mov dword [edi + 0x64], eax
lea eax, [ecx + edx]
jmp 0x1008cfc4
test eax, eax
je 0x1008d36b
push eax
call fcn.100b304b
add esp, 4
mov dword [esi + 0x14], eax
test eax, eax
je 0x1008d372
xor edx, edx
mov dword [ebp - 0x440], edx
cmp byte [esi + 0xc], dl
jbe 0x1008d088
movzx eax, byte [ebp + edx - 0x4c]
xor ecx, ecx
mov dword [ebp - 0x454], ecx
mov dword [ebp - 0x45c], eax
nop dword [eax]
nop word [eax + eax]
mov edi, dword [ebp - 0x460]
lea edx, [ecx + edx*8]
mov eax, 1
add edx, edx
shl eax, cl
mov dword [ebp - 0x46c], edx
test dword [ebp - 0x45c], eax
je 0x1008d053
push 8
push edi
call fcn.10088e50
mov edx, dword [ebp - 0x46c]
add esp, 8
mov ecx, dword [esi + 0x14]
mov word [edx + ecx], ax
mov eax, dword [esi + 0x14]
movsx eax, word [edx + eax]
cmp eax, dword [edi + 0x84]
jge 0x1008c919
mov ecx, dword [ebp - 0x454]
jmp 0x1008d063
mov eax, dword [esi + 0x14]
or edi, 0xffffffff
mov word [edx + eax], di
mov edi, dword [ebp - 0x460]
mov edx, dword [ebp - 0x440]
inc ecx
mov dword [ebp - 0x454], ecx
cmp ecx, 8
jl 0x1008d000
movzx eax, byte [esi + 0xc]
inc edx
mov dword [ebp - 0x440], edx
cmp edx, eax
jl 0x1008cfe0
movzx eax, byte [esi + 0xd]
mov edx, dword [edi + 0x5c]
imul ecx, eax, 0x830
mov eax, dword [edi + 0x88]
mov eax, dword [ecx + eax + 4]
lea ecx, [eax*4 + 7]
and ecx, 0xfffffff8
add dword [edi + 8], ecx
test edx, edx
je 0x1008d0c5
mov eax, dword [edi + 0x64]
add ecx, eax
cmp ecx, dword [edi + 0x68]
jg 0x1008d34b
mov dword [edi + 0x64], ecx
add edx, eax
jmp 0x1008d0d8
test ecx, ecx
je 0x1008d34b
push ecx
call fcn.100b304b
add esp, 4
mov edx, eax
mov dword [esi + 0x10], edx
test edx, edx
je 0x1008d352
movzx ecx, byte [esi + 0xd]
mov eax, dword [edi + 0x88]
imul ecx, ecx, 0x830
mov eax, dword [ecx + eax + 4]
shl eax, 2
push eax
push 0
push edx
call fcn.100aefd0
mov eax, dword [edi + 0x88]
xor ecx, ecx
mov dl, byte [esi + 0xd]
add esp, 0xc
mov dword [ebp - 0x440], eax
mov edi, dword [ebp - 0x440]
movzx eax, dl
imul eax, eax, 0x830
mov dword [ebp - 0x444], ecx
cmp dword [eax + edi + 4], ecx
mov edi, dword [ebp - 0x460]
jle 0x1008d26f
nop dword [eax]
movzx eax, dl
mov edx, dword [edi + 0x88]
imul eax, eax, 0x830
mov dword [ebp - 0x43c], ecx
mov eax, dword [eax + edx]
mov edx, ecx
mov dword [ebp - 0x45c], eax
add eax, 7
and eax, 0xfffffff8
add dword [edi + 8], eax
cmp dword [edi + 0x5c], 0
je 0x1008d199
mov ecx, dword [edi + 0x64]
add eax, ecx
mov dword [ebp - 0x454], ecx
mov ecx, dword [ebp - 0x444]
cmp eax, dword [edi + 0x68]
jg 0x1008d1ba
mov dword [edi + 0x64], eax
mov eax, dword [ebp - 0x454]
add eax, dword [edi + 0x5c]
mov dword [ebp - 0x448], eax
jmp 0x1008d1c4
test eax, eax
je 0x1008d1ba
push eax
call fcn.100b304b
mov edx, dword [ebp - 0x43c]
add esp, 4
mov ecx, dword [ebp - 0x444]
mov dword [ebp - 0x448], eax
jmp 0x1008d1c4
mov dword [ebp - 0x448], 0
mov eax, dword [esi + 0x10]
mov edi, dword [ebp - 0x448]
mov dword [eax + ecx*4], edi
mov eax, dword [esi + 0x10]
mov edi, dword [ebp - 0x460]
cmp dword [eax + ecx*4], 0
je 0x1008c85d
mov eax, dword [ebp - 0x45c]
add eax, 0xffffffff
mov dword [ebp - 0x454], eax
js 0x1008d23a
movzx ecx, byte [esi + 0xc]
mov edi, eax
nop word [eax + eax]
mov eax, edx
cdq
idiv ecx
mov ecx, dword [esi + 0x10]
mov eax, dword [ebp - 0x444]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ebp - 0x43c]
mov byte [edi + ecx], dl
movzx ecx, byte [esi + 0xc]
cdq
idiv ecx
sub edi, 1
mov edx, eax
mov dword [ebp - 0x43c], edx
jns 0x1008d200
mov edi, dword [ebp - 0x460]
mov ecx, dword [ebp - 0x444]
mov eax, dword [edi + 0x88]
inc ecx
mov dl, byte [esi + 0xd]
mov dword [ebp - 0x440], eax
mov edi, dword [ebp - 0x440]
movzx eax, dl
imul eax, eax, 0x830
mov dword [ebp - 0x444], ecx
cmp ecx, dword [eax + edi + 4]
mov edi, dword [ebp - 0x460]
jl 0x1008d140
mov eax, dword [ebp - 0x464]
mov ecx, dword [ebp - 0x468]
inc eax
add dword [ebp - 0x450], 2
add ecx, 0x18
mov dword [ebp - 0x464], eax
mov dword [ebp - 0x468], ecx
cmp eax, dword [edi + 0x114]
jl 0x1008ce03
push 6
push edi
call fcn.10088e50
inc eax
mov dword [edi + 0x19c], eax
lea eax, [eax + eax*4]
shl eax, 3
push eax
push edi
call fcn.1008b0f0
mov ecx, eax
add esp, 0x10
mov dword [edi + 0x1a0], ecx
test ecx, ecx
je 0x1008c85d
mov eax, dword [edi + 0x19c]
lea eax, [eax + eax*4]
shl eax, 3
push eax
push 0
push ecx
call fcn.100aefd0
add esp, 0xc
mov dword [ebp - 0x468], 0
cmp dword [edi + 0x19c], 0
jle 0x1008d5f9
xor ecx, ecx
mov dword [ebp - 0x45c], ecx
mov esi, dword [edi + 0x1a0]
push 0x10
push edi
add esi, ecx
call fcn.10088e50
add esp, 8
test eax, eax
jne 0x1008c919
mov eax, dword [edi + 4]
mov ecx, dword [edi + 0x5c]
lea eax, [eax + eax*2]
add eax, 7
and eax, 0xfffffff8
add dword [edi + 8], eax
test ecx, ecx
je 0x1008d38b
mov edx, dword [edi + 0x64]
add eax, edx
cmp eax, dword [edi + 0x68]
jg 0x1008d6fc
mov dword [edi + 0x64], eax
lea eax, [edx + ecx]
jmp 0x1008d39c
mov dword [esi + 0x10], 0
mov dword [edi + 0x70], 3
xor eax, eax
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100ad4b8
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x14], 0
mov dword [edi + 0x70], 3
xor eax, eax
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100ad4b8
mov esp, ebp
pop ebp
ret
test eax, eax
je 0x1008d6fc
push eax
call fcn.100b304b
add esp, 4
mov dword [esi + 4], eax
test eax, eax
je 0x1008d703
push 1
push edi
call fcn.10088e50
add esp, 8
test eax, eax
je 0x1008d3c5
push 4
push edi
call fcn.10088e50
add esp, 8
inc al
jmp 0x1008d3c7
mov al, 1
push 1
push edi
mov byte [esi + 8], al
call fcn.10088e50
add esp, 8
test eax, eax
je 0x1008d4b1
push 8
push edi
call fcn.10088e50
inc eax
add esp, 8
mov word [esi], ax
mov ecx, dword [edi + 4]
movzx eax, ax
cmp eax, ecx
jg 0x1008c919
xor edx, edx
mov dword [ebp - 0x440], edx
test eax, eax
je 0x1008d4b6
mov dword [ebp - 0x450], edx
lea eax, [ecx - 1]
push eax
call fcn.10089170
push eax
push edi
call fcn.10088e50
mov ecx, dword [esi + 4]
mov edx, dword [ebp - 0x450]
mov byte [edx + ecx], al
mov eax, dword [edi + 4]
dec eax
push eax
call fcn.10089170
push eax
push edi
call fcn.10088e50
mov ecx, dword [esi + 4]
add esp, 0x18
mov edx, dword [ebp - 0x450]
mov byte [edx + ecx + 1], al
mov eax, dword [esi + 4]
mov ecx, dword [edi + 4]
mov al, byte [edx + eax]
mov byte [ebp - 0x449], al
movzx eax, al
cmp eax, ecx
jge 0x1008c919
mov eax, dword [esi + 4]
mov al, byte [edx + eax + 1]
mov byte [ebp - 0x435], al
movzx eax, al
cmp eax, ecx
jge 0x1008c919
mov al, byte [ebp - 0x449]
cmp al, byte [ebp - 0x435]
je 0x1008c919
inc dword [ebp - 0x440]
add edx, 3
movzx eax, word [esi]
mov dword [ebp - 0x450], edx
cmp dword [ebp - 0x440], eax
jl 0x1008d410
jmp 0x1008d4b6
xor eax, eax
mov word [esi], ax
push 2
push edi
call fcn.10088e50
add esp, 8
test eax, eax
jne 0x1008c919
cmp byte [esi + 8], 1
mov eax, dword [edi + 4]
jbe 0x1008d535
mov dword [ebp - 0x454], 0
test eax, eax
jle 0x1008d551
mov dword [ebp - 0x464], 0
nop word [eax + eax]
push 4
push edi
call fcn.10088e50
mov edx, dword [ebp - 0x464]
add esp, 8
mov ecx, dword [esi + 4]
mov byte [edx + ecx + 2], al
mov eax, dword [esi + 4]
mov al, byte [edx + eax + 2]
cmp al, byte [esi + 8]
jae 0x1008c919
mov eax, dword [ebp - 0x454]
add edx, 3
inc eax
mov dword [ebp - 0x464], edx
mov dword [ebp - 0x454], eax
cmp eax, dword [edi + 4]
jl 0x1008d4f0
jmp 0x1008d551
xor edx, edx
test eax, eax
jle 0x1008d551
xor ecx, ecx
nop dword [eax]
mov eax, dword [esi + 4]
lea ecx, [ecx + 3]
inc edx
mov byte [ecx + eax - 1], 0
cmp edx, dword [edi + 4]
jl 0x1008d540
cmp byte [esi + 8], 0
jbe 0x1008d5d1
lea eax, [esi + 9]
mov dword [ebp - 0x450], eax
mov eax, 0xfffffff7
sub eax, esi
mov dword [ebp - 0x454], eax
nop dword [eax]
push 8
push edi
call fcn.10088e50
push 8
push edi
call fcn.10088e50
mov ecx, dword [ebp - 0x450]
push 8
push edi
mov byte [ecx], al
call fcn.10088e50
mov edx, dword [ebp - 0x450]
add esp, 0x18
movzx ecx, byte [edx]
mov byte [edx + 0xf], al
cmp ecx, dword [edi + 0x8c]
jge 0x1008c919
movzx eax, al
cmp eax, dword [edi + 0x114]
jge 0x1008c919
mov ecx, dword [ebp - 0x454]
inc edx
movzx eax, byte [esi + 8]
add ecx, edx
mov dword [ebp - 0x450], edx
cmp ecx, eax
jl 0x1008d570
mov eax, dword [ebp - 0x468]
mov ecx, dword [ebp - 0x45c]
inc eax
add ecx, 0x28
mov dword [ebp - 0x468], eax
mov dword [ebp - 0x45c], ecx
cmp eax, dword [edi + 0x19c]
jl 0x1008d304
push 6
push edi
call fcn.10088e50
inc eax
mov dword [ebp - 0x454], 0
add esp, 8
mov dword [edi + 0x1a4], eax
test eax, eax
jle 0x1008d68c
lea esi, [edi + 0x1aa]
nop
push 1
push edi
call fcn.10088e50
push 0x10
push edi
mov byte [esi - 2], al
call fcn.10088e50
push 0x10
push edi
mov word [esi], ax
call fcn.10088e50
push 8
push edi
mov word [esi + 2], ax
call fcn.10088e50
add esp, 0x20
mov byte [esi - 1], al
cmp word [esi], 0
jne 0x1008c919
cmp word [esi + 2], 0
jne 0x1008c919
movzx eax, al
cmp eax, dword [edi + 0x19c]
jge 0x1008c919
mov eax, dword [ebp - 0x454]
add esi, 6
inc eax
mov dword [ebp - 0x454], eax
cmp eax, dword [edi + 0x1a4]
jl 0x1008d620
push edi
call fcn.10088bd0
add esp, 4
mov dword [edi + 0x3ec], 0
cmp dword [edi + 4], 0
mov dword [ebp - 0x454], 0
jle 0x1008d7f9
mov eax, dword [ebp - 0x478]
lea esi, [edi + 0x32c]
lea eax, [eax*2 + 7]
and eax, 0xfffffff8
mov dword [ebp - 0x464], eax
nop
mov eax, dword [edi + 0x80]
mov ecx, dword [edi + 0x5c]
lea eax, [eax*4 + 7]
and eax, 0xfffffff8
add dword [edi + 8], eax
test ecx, ecx
je 0x1008d71c
mov edx, dword [edi + 0x64]
add eax, edx
cmp eax, dword [edi + 0x68]
jg 0x1008d72b
mov dword [edi + 0x64], eax
lea eax, [edx + ecx]
jmp 0x1008d72d
mov dword [esi + 4], 0
mov dword [edi + 0x70], 3
xor eax, eax
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100ad4b8
mov esp, ebp
pop ebp
ret
test eax, eax
je 0x1008d72b
push eax
call fcn.100b304b
add esp, 4
jmp 0x1008d72d
xor eax, eax
mov dword [esi], eax
mov eax, dword [edi + 0x80]
mov ecx, dword [edi + 0x5c]
shl eax, 2
shr eax, 1
add eax, 7
and eax, 0xfffffff8
add dword [edi + 8], eax
test ecx, ecx
je 0x1008d75c
mov edx, dword [edi + 0x64]
add eax, edx
cmp eax, dword [edi + 0x68]
jg 0x1008d76b
mov dword [edi + 0x64], eax
lea eax, [edx + ecx]
jmp 0x1008d76d
test eax, eax
je 0x1008d76b
push eax
call fcn.100b304b
add esp, 4
jmp 0x1008d76d
xor eax, eax
mov dword [esi + 0x80], eax
mov eax, dword [ebp - 0x464]
add dword [edi + 8], eax
mov ecx, dword [edi + 0x5c]
test ecx, ecx
je 0x1008d795
mov edx, dword [edi + 0x64]
add eax, edx
cmp eax, dword [edi + 0x68]
jg 0x1008d7a4
mov dword [edi + 0x64], eax
lea eax, [ecx + edx]
jmp 0x1008d7a6
test eax, eax
je 0x1008d7a4
push eax
call fcn.100b304b
add esp, 4
jmp 0x1008d7a6
xor eax, eax
mov ecx, dword [esi]
mov dword [esi + 0xc4], eax
test ecx, ecx
je 0x1008c85d
cmp dword [esi + 0x80], 0
je 0x1008c85d
test eax, eax
je 0x1008c85d
mov eax, dword [edi + 0x80]
shl eax, 2
push eax
push 0
push ecx
call fcn.100aefd0
mov edx, dword [ebp - 0x454]
add esp, 0xc
inc edx
add esi, 4
mov dword [ebp - 0x454], edx
cmp edx, dword [edi + 4]
jl 0x1008d6d0
push dword [edi + 0x7c]
push 0
push edi
call fcn.10089a20
add esp, 0xc
test eax, eax
je 0x1008c920
push dword [edi + 0x80]
push 1
push edi
call fcn.10089a20
add esp, 0xc
test eax, eax
je 0x1008c920
mov eax, dword [edi + 0x7c]
xor esi, esi
mov dword [edi + 0x74], eax
mov edx, dword [edi + 0x80]
mov dword [edi + 0x78], edx
mov ecx, dword [edi + 0x114]
mov dword [ebp - 0x454], ecx
lea eax, [edx*4]
shr eax, 1
mov dword [ebp - 0x45c], eax
test ecx, ecx
jle 0x1008d8ad
mov edi, dword [edi + 0x198]
mov eax, edx
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x464], eax
nop dword [eax + eax]
cmp dword [edi], eax
mov edx, eax
mov ecx, dword [edi + 4]
cmovb edx, dword [edi]
lea edi, [edi + 0x18]
cmp ecx, dword [ebp - 0x464]
cmovb eax, ecx
sub eax, edx
xor edx, edx
div dword [edi - 0x10]
cmp eax, esi
cmovg esi, eax
sub dword [ebp - 0x454], 1
mov eax, dword [ebp - 0x464]
jne 0x1008d870
mov edi, dword [ebp - 0x460]
mov eax, dword [ebp - 0x45c]
inc esi
imul esi, dword [edi + 4]
shl esi, 2
mov dword [edi + 0xc], esi
cmp eax, esi
jbe 0x1008d8c1
mov dword [edi + 0xc], eax
mov esi, eax
cmp dword [edi + 0x5c], 0
je 0x1008d8da
mov eax, dword [edi + 0x64]
add eax, 0x5f4
add eax, esi
cmp eax, dword [edi + 0x68]
ja 0x1008c85d
cmp dword [edi + 0x570], 0xffffffff
jne 0x1008d904
push edi
call fcn.1008dd20
add esp, 4
mov dword [edi + 0x40], eax
mov eax, 1
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100ad4b8
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor eax, eax
mov dword [edi + 0x40], eax
xor ecx, ebp
pop edi
mov eax, 1
pop esi
call fcn.100ad4b8
mov esp, ebp
pop ebp
ret