Function at 0x1008dde0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0xf8
mov eax, dword [0x101ce00c]
xor eax, esp
mov dword [esp + 0xf4], eax
push ebx
push ebp
mov ebp, dword [esp + 0x104]
mov eax, dword [ebp + 4]
push edi
mov dword [esp + 0x14], ebp
mov dword [esp + 0xa0], eax
test bl, bl
mov ebx, dword [ebp]
mov dword [esp + 0x9c], ebx
mov dh, dh
mov ch, ch
mov ecx, dword [ebp + 0x44]
mov dword [esp + 0x34], ecx
mov ebp, ebp
mov edx, dword [ebp + 0x50]
mov dword [esp + 0x5c], edx
push ecx
pop ecx
mov eax, dword [ebp + 0x54]
mov dword [esp + 0xac], eax
mov ebp, ebp
push ecx
pop ecx
mov ecx, dword [ebp + 0x15c]
mov dword [esp + 0x54], ecx
xchg ebx, eax
xchg ebx, eax
mov edx, dword [ebp + 0x58]
mov dword [esp + 0xa4], edx
mov ecx, ecx
mov eax, dword [ebp + 0x48]
mov dword [esp + 0x70], eax
test ch, ch
mov ecx, dword [ebp + 0x4c]
mov dword [esp + 0x60], ecx
mov dl, dl
mov ecx, dword [ebp + 0x160]
mov dword [esp + 0x64], ecx
mov ebx, ebx
push 0x10181900
push 0x10181900
call fcn.100070b0
test dh, dh
test cl, cl
test dl, dl
mov edi, dword [ebp + 8]
cmp edi, dword [ebp + 0xc]
mov dword [esp + 0x4c], edi
jg 0x1008ede1
push esi
jmp 0x1008dea2
mov ebp, eax
cmp dword [ebp + 0x164], 0
jne 0x1008ede0
mov edx, dword [ebp + 0x24]
imul edx, dword [esp + 0x38]
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0x60]
push edx
push eax
push ecx
call fcn.10119900
add esp, 0xc
mov ecx, ecx
mov cl, cl
mov dword [esp + 0x24], 0
test ch, ch
test ah, ah
test bh, bh
lea esi, [ebx + 0x325c]
push 0x3e8
push esi
call fcn.10058cb0
add esp, 8
push edx
pop edx
test edi, edi
jl 0x1008ee1c
mov edx, dword [esp + 0xa4]
cmp edi, dword [edx + 8]
jge 0x1008ee1c
mov eax, edx
mov ecx, dword [eax + 4]
mov eax, dword [ecx + edi*4]
mov edx, dword [ebp + 0x10]
push 0
push edx
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0x30]
push edx
lea ecx, [esp + 0x88]
push ecx
push eax
push ebx
call fcn.1007ae60
add esp, 0x1c
test eax, eax
push esi
jne 0x1008df4b
call fcn.10058d40
add esp, 4
mov cl, cl
jmp 0x1008edcc
call fcn.10058d40
add esp, 4
push edx
pop edx
mov esi, dword [esp + 0x24]
mov dword [esp + 0xac], esi
test ah, ah
mov edx, dword [esp + 0x7c]
cmp edx, dword [ebp + 0x20]
jg 0x1008edf9
mov eax, dword [esp + 0x80]
cmp eax, dword [ebp + 0x24]
jg 0x1008edf9
cmp dword [ebp + 0x18], 0
jne 0x1008dfc3
test eax, eax
jle 0x1008e091
mov ebx, dword [esp + 0x34]
mov edx, esi
mov esi, dword [esp + 0x7c]
add edx, 3
mov edi, eax
lea esp, [esp]
test esi, esi
jle 0x1008dfb7
mov eax, edx
mov ecx, esi
mov dh, dh
mov byte [eax], 0
mov eax, eax
add eax, 4
sub ecx, 1
jne 0x1008dfa8
add edx, ebx
sub edi, 1
jne 0x1008dfa0
jmp 0x1008e091
mov eax, dword [esp + 0x80]
imul eax, dword [esp + 0x34]
push eax
call fcn.10117b2c
add esp, 4
mov dword [esp + 0x24], eax
mov ah, ah
test eax, eax
jne 0x1008e003
cmp dword [ebp + 0x10], eax
jne 0x1008dff3
cmp dword [ebx + 0x32f4], eax
jne 0x1008edcc
push esi
call fcn.10117bef
add esp, 4
mov dh, dh
jmp 0x1008edcc
cmp dword [esp + 0x80], 0
jle 0x1008e091
mov ecx, dword [esp + 0x80]
mov ebp, dword [esp + 0x24]
add esi, 1
mov dword [esp + 0x44], esi
mov dword [esp + 0x3c], ecx
cmp dword [esp + 0x7c], 0
jle 0x1008e080
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x7c]
mov esi, ebp
mov dh, dh
test bh, bh
movzx eax, byte [ecx + 1]
test eax, 0x2f82
movzx edx, byte [ecx]
test bh, bh
movzx edi, byte [ecx - 1]
mov bh, bh
add edi, edx
add edi, eax
mov eax, 0xaaaaaaab
mul edi
shr edx, 1
test eax, 0x51f5
movzx eax, dl
mov edx, eax
shl edx, 8
or edx, eax
shl edx, 8
or edx, eax
mov dword [esi], edx
mov dl, dl
add ecx, 4
add esi, 4
sub ebx, 1
jne 0x1008e038
mov eax, dword [esp + 0x34]
add dword [esp + 0x44], eax
add ebp, eax
sub dword [esp + 0x3c], 1
jne 0x1008e027
mov dl, dl
test eax, eax
mov dh, dh
xor ebx, ebx
mov dword [esp + 0x10], ebx
xchg ebx, eax
xchg ebx, eax
lea eax, [esp + 0x10]
push eax
mov eax, dword [esp + 0x1c]
add eax, 0x5c
push 0x10181b18
push eax
call fcn.1011a25d
add esp, 0xc
mov dl, dl
movzx ecx, byte [esp + 0x12]
mov dword [esp + 0x44], ecx
mov bh, bh
movzx edx, byte [esp + 0x11]
mov dword [esp + 0x6c], edx
mov al, al
mov eax, dword [esp + 0x10]
and eax, 0xff
mov dword [esp + 0x70], eax
mov ch, ch
test bl, bl
mov dl, dl
push edx
pop edx
mov cl, cl
test ah, ah
test eax, 0x608d
mov ecx, ecx
test ch, ch
mov ebp, ebp
mov dl, dl
mov esi, esi
test bl, bl
mov esi, dword [esp + 0x24]
mov eax, dword [esi]
mov dword [esp + 0x54], eax
test eax, eax
mov edi, dword [esp + 0x7c]
mov ecx, dword [esi + edi*4 - 4]
mov ch, ch
mov ebp, dword [esp + 0x80]
lea eax, [ebp - 1]
imul eax, dword [esp + 0x34]
mov edx, dword [eax + esi]
test bl, bl
lea eax, [eax + edi*4]
mov eax, dword [eax + esi - 4]
mov ah, ah
mov dword [esp + 0x5c], ebx
test eax, 0x4ca4
test ebx, ebx
mov ebx, dword [esp + 0x54]
cmp ebx, ecx
jne 0x1008e298
cmp ecx, edx
jne 0x1008e298
cmp edx, eax
jne 0x1008e298
mov dword [esp + 0x5c], 1
mov al, al
xor edx, edx
test ebp, ebp
jle 0x1008e197
xor eax, eax
test edi, edi
jle 0x1008e18c
mov ecx, esi
lea ecx, [ecx]
mov ebx, ebx
cmp dword [ecx], ebx
jne 0x1008e182
add eax, 1
add ecx, 4
cmp eax, edi
jl 0x1008e170
jmp 0x1008e18c
mov ecx, ecx
test dh, dh
mov dl, dl
cmp eax, edi
jl 0x1008e197
add esi, dword [esp + 0x34]
add edx, 1
cmp edx, ebp
jl 0x1008e165
xor esi, esi
test ebp, ebp
jle 0x1008e1d6
xor edx, edx
nop
lea eax, [edi - 1]
test eax, eax
jl 0x1008e1cb
lea ecx, [edx + eax*4]
add ecx, dword [esp + 0x24]
mov edi, edi
nop
cmp dword [ecx], ebx
jne 0x1008e1c1
sub eax, 1
sub ecx, 4
test eax, eax
jge 0x1008e1b0
jmp 0x1008e1cb
test ch, ch
push eax
pop eax
mov ebx, ebx
test eax, eax
jge 0x1008e1d6
add edx, dword [esp + 0x34]
add esi, 1
cmp esi, ebp
jl 0x1008e1a0
lea esi, [ebp - 1]
test esi, esi
jl 0x1008e235
mov eax, dword [esp + 0x34]
mov edx, esi
imul edx, eax
mov ebx, eax
neg ebx
add edx, dword [esp + 0x24]
mov edi, edi
xor eax, eax
test edi, edi
jle 0x1008e223
mov ebp, dword [esp + 0x54]
mov ecx, edx
lea esp, [esp]
test ch, ch
cmp dword [ecx], ebp
jne 0x1008e212
add eax, 1
add ecx, 4
cmp eax, edi
jl 0x1008e200
jmp 0x1008e21c
test dl, dl
test bl, bl
mov ecx, ecx
cmp eax, edi
jl 0x1008e22e
mov ebp, dword [esp + 0x80]
sub esi, 1
add edx, ebx
test esi, esi
jge 0x1008e1f0
jmp 0x1008e235
mov ebp, dword [esp + 0x80]
lea esi, [ebp - 1]
test esi, esi
jl 0x1008e298
mov ebx, dword [esp + 0x34]
mov edx, esi
imul edx, ebx
neg ebx
lea eax, [edi - 1]
test eax, eax
jl 0x1008e286
mov ebp, dword [esp + 0x54]
lea ecx, [edx + eax*4]
add ecx, dword [esp + 0x24]
lea esp, [esp]
mov ch, ch
cmp dword [ecx], ebp
jne 0x1008e272
sub eax, 1
sub ecx, 4
test eax, eax
jge 0x1008e260
jmp 0x1008e27f
mov eax, eax
test eax, 0x661b
mov ebx, ebx
test eax, eax
jge 0x1008e291
mov ebp, dword [esp + 0x80]
sub esi, 1
add edx, ebx
test esi, esi
jge 0x1008e247
jmp 0x1008e298
mov ebp, dword [esp + 0x80]
mov ecx, ebp
imul ecx, edi
mov dword [esp + 0x48], ecx
imul ecx, dword [esp + 0x58]
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
lea edx, [edx + ecx + 1]
mov dword [esp + 0x40], edx
mov edi, edi
mov eax, dword [esp + 0xa8]
xor ecx, ecx
cmp eax, ecx
jne 0x1008e577
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 0x24]
sub ecx, ebp
js 0x1008ed7c
mov edx, dword [esp + 0x60]
mov dword [esp + 0x28], edx
jmp 0x1008e2f0
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x20]
sub ecx, dword [esp + 0x7c]
mov dword [esp + 0x1c], 0
js 0x1008e549
mov edx, dword [esp + 0x28]
mov dword [esp + 0x2c], edx
mov dl, dl
push edx
pop edx
xor eax, eax
mov dword [esp + 0x14], eax
test bh, bh
mov ebp, dword [esp + 0x48]
test edi, edi
cmp dword [esp + 0x80], eax
mov dword [esp + 0x3c], eax
jle 0x1008e3db
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x30], eax
mov ecx, ecx
xor esi, esi
cmp dword [esp + 0x7c], esi
jle 0x1008e3a4
mov edi, dword [esp + 0x30]
mov edi, edi
sub ebp, 1
test ah, ah
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x70]
push edx
mov edx, dword [esp + 0x4c]
push eax
push ecx
mov ecx, dword [ebx + esi*4]
push edx
mov edx, dword [edi]
call fcn.100634f0
add esp, 0x14
test eax, eax
je 0x1008e386
add dword [esp + 0x14], 1
test ebx, ebx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jge 0x1008e3db
add ecx, ebp
cmp ecx, eax
jl 0x1008e3a4
add esi, 1
add edi, 4
cmp esi, dword [esp + 0x7c]
jl 0x1008e350
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
cmp eax, ecx
jge 0x1008e3db
lea edx, [eax + ebp]
cmp edx, ecx
jl 0x1008e3db
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
add ebx, dword [esp + 0x34]
add dword [esp + 0x30], ecx
add eax, 1
cmp eax, dword [esp + 0x80]
mov dword [esp + 0x3c], eax
jl 0x1008e340
mov eax, dword [esp + 0x14]
imul eax, eax, 0x64
cdq
idiv dword [esp + 0x48]
push edx
pop edx
cmp eax, dword [esp + 0x58]
jl 0x1008e526
xor ecx, ecx
mov byte [esp + 0xb4], 0
mov dword [esp + 0xb5], ecx
mov dword [esp + 0xb9], ecx
mov dword [esp + 0xbd], ecx
mov dword [esp + 0xc1], ecx
mov dword [esp + 0xc5], ecx
mov dword [esp + 0xc9], ecx
mov dword [esp + 0xcd], ecx
mov word [esp + 0xd1], cx
mov byte [esp + 0xd3], cl
nop
mov esi, esi
test eax, eax
mov byte [esp + 0xf8], 0x25
mov byte [esp + 0xf9], 0x64
mov byte [esp + 0xfa], 0x2c
mov byte [esp + 0xfb], 0x25
mov byte [esp + 0xfc], 0x64
mov byte [esp + 0xfd], 0x2c
mov byte [esp + 0xfe], 0x25
mov byte [esp + 0xff], 0x64
mov byte [esp + 0x100], 0x2c
mov byte [esp + 0x101], 0x25
mov byte [esp + 0x102], 0x64
mov byte [esp + 0x103], cl
mov ebx, ebx
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x20]
add edx, ecx
mov ecx, dword [esp + 0x74]
push edx
mov edx, dword [esp + 0x20]
add edx, ecx
push edx
mov edx, dword [esp + 0x58]
push eax
push edx
lea eax, [esp + 0x108]
push eax
lea ecx, [esp + 0xc8]
push ecx
call fcn.10119287
add esp, 0x18
test edx, edx
mov esi, dword [esp + 0x68]
mov edx, dword [esi + 0x10]
sub edx, dword [esi + 0x14]
je 0x1008e4f8
push 0x10181a25
push 0x10181a24
mov ecx, esi
call fcn.10003e40
mov ebx, ebx
lea eax, [esp + 0xb4]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1008e502
sub eax, edx
lea eax, [esp + eax + 0xb4]
push eax
lea ecx, [esp + 0xb8]
push ecx
mov ecx, esi
call fcn.10003e40
test bl, bl
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [edx + 0x20]
sub ecx, dword [esp + 0x7c]
add dword [esp + 0x2c], 4
add eax, 1
cmp eax, ecx
mov dword [esp + 0x1c], eax
jle 0x1008e311
mov edx, dword [esp + 0x38]
add dword [esp + 0x28], edx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov edx, dword [ecx + 0x24]
sub edx, dword [esp + 0x80]
add eax, 1
cmp eax, edx
mov dword [esp + 0x20], eax
jle 0x1008e2f0
jmp 0x1008ed7c
cmp eax, 1
jne 0x1008e82a
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x24]
sub eax, ebp
mov dword [esp + 0x20], eax
js 0x1008ed7c
mov edx, dword [esp + 0x38]
imul eax, edx
mov ecx, edx
neg ecx
add eax, dword [esp + 0x60]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x30], eax
lea ebx, [ebx]
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x20]
sub edx, dword [esp + 0x7c]
mov dword [esp + 0x1c], 0
js 0x1008e80a
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], eax
mov edi, edi
mov ch, ch
xor eax, eax
mov dword [esp + 0x14], eax
test edi, edi
mov ebp, dword [esp + 0x48]
test dl, dl
cmp dword [esp + 0x80], eax
mov dword [esp + 0x4c], eax
jle 0x1008e69b
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x28], ecx
test edi, edi
xor esi, esi
cmp dword [esp + 0x7c], esi
jle 0x1008e664
mov edi, dword [esp + 0x28]
mov edi, edi
sub ebp, 1
test esi, esi
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x70]
push edx
mov edx, dword [esp + 0x70]
push eax
mov eax, dword [esp + 0x4c]
push ecx
mov ecx, dword [ebx + esi*4]
push edx
mov edx, dword [edi]
push eax
call fcn.100634f0
add esp, 0x14
test eax, eax
je 0x1008e646
add dword [esp + 0x14], 1
mov eax, eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jge 0x1008e69b
add ecx, ebp
cmp ecx, eax
jl 0x1008e664
add esi, 1
add edi, 4
cmp esi, dword [esp + 0x7c]
jl 0x1008e610
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
cmp eax, ecx
jge 0x1008e69b
lea edx, [eax + ebp]
cmp edx, ecx
jl 0x1008e69b
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x38]
add ebx, dword [esp + 0x34]
add dword [esp + 0x28], ecx
add eax, 1
cmp eax, dword [esp + 0x80]
mov dword [esp + 0x4c], eax
jl 0x1008e600
mov eax, dword [esp + 0x14]
imul eax, eax, 0x64
cdq
idiv dword [esp + 0x48]
test ebx, ebx
cmp eax, dword [esp + 0x58]
jl 0x1008e7e7
xor ecx, ecx
mov byte [esp + 0xb4], 0
mov dword [esp + 0xb5], ecx
mov dword [esp + 0xb9], ecx
mov dword [esp + 0xbd], ecx
mov dword [esp + 0xc1], ecx
mov dword [esp + 0xc5], ecx
mov dword [esp + 0xc9], ecx
mov dword [esp + 0xcd], ecx
mov word [esp + 0xd1], cx
mov byte [esp + 0xd3], cl
push eax
pop eax
mov al, al
test dl, dl
mov byte [esp + 0xe0], 0x25
mov byte [esp + 0xe1], 0x64
mov byte [esp + 0xe2], 0x2c
mov byte [esp + 0xe3], 0x25
mov byte [esp + 0xe4], 0x64
mov byte [esp + 0xe5], 0x2c
mov byte [esp + 0xe6], 0x25
mov byte [esp + 0xe7], 0x64
mov byte [esp + 0xe8], 0x2c
mov byte [esp + 0xe9], 0x25
mov byte [esp + 0xea], 0x64
mov byte [esp + 0xeb], cl
mov ebp, ebp
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x20]
add edx, ecx
mov ecx, dword [esp + 0x74]
push edx
mov edx, dword [esp + 0x20]
add edx, ecx
push edx
mov edx, dword [esp + 0x58]
push eax
push edx
lea eax, [esp + 0xf0]
push eax
lea ecx, [esp + 0xc8]
push ecx
call fcn.10119287
add esp, 0x18
test ecx, ecx
mov esi, dword [esp + 0x68]
mov edx, dword [esi + 0x10]
sub edx, dword [esi + 0x14]
je 0x1008e7b9
push 0x10181a25
push 0x10181a24
mov ecx, esi
call fcn.10003e40
push edx
pop edx
lea eax, [esp + 0xb4]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1008e7c3
sub eax, edx
lea eax, [esp + eax + 0xb4]
push eax
lea ecx, [esp + 0xb8]
push ecx
mov ecx, esi
call fcn.10003e40
mov edi, edi
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [edx + 0x20]
sub ecx, dword [esp + 0x7c]
add dword [esp + 0x2c], 4
add eax, 1
cmp eax, ecx
mov dword [esp + 0x1c], eax
jle 0x1008e5d1
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x3c]
add dword [esp + 0x30], edx
sub eax, 1
test eax, eax
mov dword [esp + 0x20], eax
jge 0x1008e5b0
jmp 0x1008ed7c
cmp eax, 2
jne 0x1008eada
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 0x24]
sub ecx, ebp
js 0x1008ed7c
mov dword [esp + 0x30], 0
mov edi, edi
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x20]
sub eax, dword [esp + 0x7c]
mov dword [esp + 0x1c], eax
js 0x1008eaac
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x1c]
lea eax, [eax + ecx*4]
add eax, dword [esp + 0x60]
mov dword [esp + 0x2c], eax
test edx, edx
mov dh, dh
xor eax, eax
mov dword [esp + 0x14], eax
mov esi, esi
mov ebp, dword [esp + 0x48]
test bl, bl
cmp dword [esp + 0x80], eax
mov dword [esp + 0x4c], eax
jle 0x1008e946
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x28], edx
test eax, 0x52ab
xor esi, esi
cmp dword [esp + 0x7c], esi
jle 0x1008e910
mov edi, dword [esp + 0x28]
sub ebp, 1
test eax, 0x333a
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x70]
push eax
mov eax, dword [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x4c]
push edx
mov edx, dword [edi]
push eax
push ecx
mov ecx, dword [ebx + esi*4]
call fcn.100634f0
add esp, 0x14
test eax, eax
je 0x1008e8f1
add dword [esp + 0x14], 1
xchg ebx, eax
xchg ebx, eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jge 0x1008e946
lea edx, [ecx + ebp]
cmp edx, eax
jl 0x1008e910
add esi, 1
add edi, 4
cmp esi, dword [esp + 0x7c]
jl 0x1008e8b8
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
cmp eax, ecx
jge 0x1008e946
add eax, ebp
cmp eax, ecx
jl 0x1008e946
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x38]
add ebx, dword [esp + 0x34]
add dword [esp + 0x28], ecx
add eax, 1
cmp eax, dword [esp + 0x80]
mov dword [esp + 0x4c], eax
jl 0x1008e8a7
mov eax, dword [esp + 0x14]
imul eax, eax, 0x64
cdq
idiv dword [esp + 0x48]
mov eax, eax
cmp eax, dword [esp + 0x58]
jl 0x1008ea94
xor ecx, ecx
mov byte [esp + 0xb4], 0
mov dword [esp + 0xb5], ecx
mov dword [esp + 0xb9], ecx
mov dword [esp + 0xbd], ecx
mov dword [esp + 0xc1], ecx
mov dword [esp + 0xc5], ecx
mov dword [esp + 0xc9], ecx
mov dword [esp + 0xcd], ecx
mov word [esp + 0xd1], cx
mov byte [esp + 0xd3], cl
test ebx, ebx
mov bl, bl
mov edi, edi
mov byte [esp + 0xd4], 0x25
mov byte [esp + 0xd5], 0x64
mov byte [esp + 0xd6], 0x2c
mov byte [esp + 0xd7], 0x25
mov byte [esp + 0xd8], 0x64
mov byte [esp + 0xd9], 0x2c
mov byte [esp + 0xda], 0x25
mov byte [esp + 0xdb], 0x64
mov byte [esp + 0xdc], 0x2c
mov byte [esp + 0xdd], 0x25
mov byte [esp + 0xde], 0x64
mov byte [esp + 0xdf], cl
test edx, edx
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x20]
add edx, ecx
mov ecx, dword [esp + 0x74]
push edx
mov edx, dword [esp + 0x20]
add edx, ecx
push edx
mov edx, dword [esp + 0x58]
push eax
push edx
lea eax, [esp + 0xe4]
push eax
lea ecx, [esp + 0xc8]
push ecx
call fcn.10119287
add esp, 0x18
mov ebp, ebp
mov esi, dword [esp + 0x68]
mov edx, dword [esi + 0x10]
sub edx, dword [esi + 0x14]
je 0x1008ea64
push 0x10181a25
push 0x10181a24
mov ecx, esi
call fcn.10003e40
mov dh, dh
lea eax, [esp + 0xb4]
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1008ea70
sub eax, edx
lea eax, [esp + eax + 0xb4]
push eax
lea ecx, [esp + 0xb8]
push ecx
mov ecx, esi
call fcn.10003e40
mov cl, cl
mov eax, dword [esp + 0x1c]
sub dword [esp + 0x2c], 4
sub eax, 1
test eax, eax
mov dword [esp + 0x1c], eax
jge 0x1008e878
mov edx, dword [esp + 0x38]
add dword [esp + 0x30], edx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov edx, dword [ecx + 0x24]
sub edx, dword [esp + 0x80]
add eax, 1
cmp eax, edx
mov dword [esp + 0x20], eax
jle 0x1008e850
jmp 0x1008ed7c
cmp eax, 3
jne 0x1008ed7c
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x24]
sub eax, dword [esp + 0x80]
mov dword [esp + 0x20], eax
js 0x1008ed7c
mov ecx, dword [esp + 0x38]
imul eax, ecx
mov dword [esp + 0x30], eax
mov eax, ecx
neg eax
mov dword [esp + 0x3c], eax
mov edi, edi
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x20]
sub eax, dword [esp + 0x7c]
mov dword [esp + 0x1c], eax
js 0x1008ed61
mov edx, dword [esp + 0x30]
lea eax, [edx + eax*4]
add eax, dword [esp + 0x60]
mov dword [esp + 0x2c], eax
nop
test ecx, ecx
xor eax, eax
mov dword [esp + 0x14], eax
test esi, esi
mov ebp, dword [esp + 0x48]
test ch, ch
cmp dword [esp + 0x80], eax
mov dword [esp + 0x4c], eax
jle 0x1008ebfe
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x28], ecx
mov edx, edx
xor esi, esi
cmp dword [esp + 0x7c], esi
jle 0x1008ebc7
mov edi, dword [esp + 0x28]
sub ebp, 1
test al, al
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x70]
push edx
mov edx, dword [esp + 0x70]
push eax
mov eax, dword [esp + 0x4c]
push ecx
mov ecx, dword [ebx + esi*4]
push edx
mov edx, dword [edi]
push eax
call fcn.100634f0
add esp, 0x14
test eax, eax
mov eax, dword [esp + 0x14]
je 0x1008ebac
add eax, 1
mov dword [esp + 0x14], eax
test edx, edx
mov ecx, dword [esp + 0x40]
cmp eax, ecx
jge 0x1008ec02
lea edx, [eax + ebp]
cmp edx, ecx
jl 0x1008ebc7
add esi, 1
add edi, 4
cmp esi, dword [esp + 0x7c]
jl 0x1008eb70
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
cmp eax, ecx
jge 0x1008ec02
lea edx, [eax + ebp]
cmp edx, ecx
jl 0x1008ec02
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x38]
add ebx, dword [esp + 0x34]
add dword [esp + 0x28], ecx
add eax, 1
cmp eax, dword [esp + 0x80]
mov dword [esp + 0x4c], eax
jl 0x1008eb62
mov eax, dword [esp + 0x14]
imul eax, eax, 0x64
cdq
idiv dword [esp + 0x48]
test dh, dh
cmp eax, dword [esp + 0x58]
jl 0x1008ed49
xor ecx, ecx
mov byte [esp + 0xb4], 0
mov dword [esp + 0xb5], ecx
mov dword [esp + 0xb9], ecx
mov dword [esp + 0xbd], ecx
mov dword [esp + 0xc1], ecx
mov dword [esp + 0xc5], ecx
mov dword [esp + 0xc9], ecx
mov dword [esp + 0xcd], ecx
mov word [esp + 0xd1], cx
mov byte [esp + 0xd3], cl
mov ch, ch
mov dh, dh
test ecx, ecx
mov byte [esp + 0xec], 0x25
mov byte [esp + 0xed], 0x64
mov byte [esp + 0xee], 0x2c
mov byte [esp + 0xef], 0x25
mov byte [esp + 0xf0], 0x64
mov byte [esp + 0xf1], 0x2c
mov byte [esp + 0xf2], 0x25
mov byte [esp + 0xf3], 0x64
mov byte [esp + 0xf4], 0x2c
mov byte [esp + 0xf5], 0x25
mov byte [esp + 0xf6], 0x64
mov byte [esp + 0xf7], cl
push edx
pop edx
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x20]
add edx, ecx
mov ecx, dword [esp + 0x74]
push edx
mov edx, dword [esp + 0x20]
add edx, ecx
push edx
mov edx, dword [esp + 0x58]
push eax
push edx
lea eax, [esp + 0xfc]
push eax
lea ecx, [esp + 0xc8]
push ecx
call fcn.10119287
add esp, 0x18
mov bh, bh
mov esi, dword [esp + 0x68]
mov edx, dword [esi + 0x10]
sub edx, dword [esi + 0x14]
je 0x1008ed1c
push 0x10181a25
push 0x10181a24
mov ecx, esi
call fcn.10003e40
test ebx, ebx
lea eax, [esp + 0xb4]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1008ed26
sub eax, edx
lea eax, [esp + eax + 0xb4]
push eax
lea ecx, [esp + 0xb8]
push ecx
mov ecx, esi
call fcn.10003e40
nop
mov eax, dword [esp + 0x1c]
sub dword [esp + 0x2c], 4
sub eax, 1
test eax, eax
mov dword [esp + 0x1c], eax
jge 0x1008eb34
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x3c]
add dword [esp + 0x30], edx
sub eax, 1
test eax, eax
mov dword [esp + 0x20], eax
jge 0x1008eb10
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x10], 0
jne 0x1008ed96
mov ecx, dword [esp + 0xa0]
cmp dword [ecx + 0x32f4], 0
jne 0x1008eda8
mov edx, dword [esp + 0xac]
push edx
call fcn.10117bef
add esp, 4
mov eax, eax
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x18], 0
je 0x1008edc1
mov ecx, dword [esp + 0x24]
push ecx
call fcn.10117bef
add esp, 4
mov edi, edi
mov edi, dword [esp + 0x50]
mov ebx, dword [esp + 0xa0]
mov eax, dword [esp + 0x18]
add edi, 1
cmp edi, dword [eax + 0xc]
mov dword [esp + 0x50], edi
jle 0x1008dea0
pop esi
mov ecx, dword [esp + 0x100]
pop edi
pop ebp
pop ebx
xor ecx, esp
call fcn.101180ca
add esp, 0xf8
ret
cmp dword [ebp + 0x10], 0
jne 0x1008ee08
cmp dword [ebx + 0x32f4], 0
jne 0x1008edcc
mov edx, dword [esp + 0x24]
push edx
call fcn.10117bef
add esp, 4
test eax, 0x7b41
jmp 0x1008edcc
jmp fcn.10106bf9