Function at 0x1008d060
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0xf8
mov eax, dword [0x101ce2ac]
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 al, al
mov ebx, dword [ebp]
mov dword [esp + 0x9c], ebx
mov edx, edx
test cl, cl
mov ecx, dword [ebp + 0x44]
mov dword [esp + 0x34], ecx
push edx
pop edx
mov edx, dword [ebp + 0x50]
mov dword [esp + 0x5c], edx
xchg ebx, eax
xchg ebx, eax
mov eax, dword [ebp + 0x54]
mov dword [esp + 0xac], eax
test ebx, ebx
push ecx
pop ecx
mov ecx, dword [ebp + 0x15c]
mov dword [esp + 0x54], ecx
mov bl, bl
mov edx, dword [ebp + 0x58]
mov dword [esp + 0xa4], edx
mov edx, edx
mov eax, dword [ebp + 0x48]
mov dword [esp + 0x70], eax
test dl, dl
mov ecx, dword [ebp + 0x4c]
mov dword [esp + 0x60], ecx
test cl, cl
mov ecx, dword [ebp + 0x160]
mov dword [esp + 0x64], ecx
test al, al
push 0x10182970
push 0x10182970
call fcn.1000d090
test dh, dh
mov eax, eax
test ebx, ebx
mov edi, dword [ebp + 8]
cmp edi, dword [ebp + 0xc]
mov dword [esp + 0x4c], edi
jg 0x1008e074
push esi
jmp 0x1008d122
mov ebp, eax
cmp dword [ebp + 0x164], 0
jne 0x1008e073
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.10117a80
add esp, 0xc
mov ebx, ebx
push eax
pop eax
mov dword [esp + 0x24], 0
mov bh, bh
mov bh, bh
test edx, edx
lea esi, [ebx + 0x325c]
push 0x3e8
push esi
call fcn.10058180
add esp, 8
mov edx, edx
test edi, edi
jl 0x1008e0ac
mov edx, dword [esp + 0xa4]
cmp edi, dword [edx + 8]
jge 0x1008e0ac
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.1007a260
add esp, 0x1c
test eax, eax
push esi
jne 0x1008d1cb
call fcn.10058210
add esp, 4
mov bl, bl
jmp 0x1008e05f
call fcn.10058210
add esp, 4
push eax
pop eax
mov esi, dword [esp + 0x24]
mov dword [esp + 0xac], esi
test edx, edx
mov edx, dword [esp + 0x7c]
cmp edx, dword [ebp + 0x20]
jge 0x1008e08c
mov eax, dword [esp + 0x80]
cmp eax, dword [ebp + 0x24]
jge 0x1008e08c
cmp dword [ebp + 0x18], 0
jne 0x1008d243
test eax, eax
jle 0x1008d30d
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 0x1008d237
mov eax, edx
mov ecx, esi
test eax, eax
mov byte [eax], 0
test dh, dh
add eax, 4
sub ecx, 1
jne 0x1008d228
add edx, ebx
sub edi, 1
jne 0x1008d220
jmp 0x1008d30d
mov eax, dword [esp + 0x80]
imul eax, dword [esp + 0x34]
push eax
call fcn.1011671b
add esp, 4
mov dword [esp + 0x24], eax
test dh, dh
test eax, eax
jne 0x1008d282
cmp dword [ebp + 0x10], eax
jne 0x1008d273
cmp dword [ebx + 0x32f4], eax
jne 0x1008e05f
push esi
call fcn.101167de
add esp, 4
nop
jmp 0x1008e05f
cmp dword [esp + 0x80], 0
jle 0x1008d30d
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 0x1008d2fc
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x7c]
mov esi, ebp
test edi, edi
mov ecx, ecx
movzx eax, byte [ecx + 1]
mov ah, ah
movzx edx, byte [ecx]
test bl, bl
movzx edi, byte [ecx - 1]
test al, al
add edi, edx
add edi, eax
mov eax, 0xaaaaaaab
mul edi
shr edx, 1
test eax, 0x3ceb
movzx eax, dl
mov edx, eax
shl edx, 8
or edx, eax
shl edx, 8
or edx, eax
mov dword [esi], edx
test esi, esi
add ecx, 4
add esi, 4
sub ebx, 1
jne 0x1008d2b7
mov eax, dword [esp + 0x34]
add dword [esp + 0x44], eax
add ebp, eax
sub dword [esp + 0x3c], 1
jne 0x1008d2a6
mov esi, esi
test ebx, ebx
test esi, esi
xor ebx, ebx
mov dword [esp + 0x10], ebx
test cl, cl
lea eax, [esp + 0x10]
push eax
mov eax, dword [esp + 0x1c]
add eax, 0x5c
push 0x10182850
push eax
call fcn.10119565
add esp, 0xc
test bl, bl
movzx ecx, byte [esp + 0x12]
mov dword [esp + 0x44], ecx
test eax, 0x65a8
movzx edx, byte [esp + 0x11]
mov dword [esp + 0x6c], edx
mov dh, dh
mov eax, dword [esp + 0x10]
and eax, 0xff
mov dword [esp + 0x70], eax
test esi, esi
push eax
pop eax
push eax
pop eax
test eax, 0x76ad
test esi, esi
xchg ebx, eax
xchg ebx, eax
test cl, cl
mov bh, bh
mov edx, edx
push edx
pop edx
mov bl, bl
mov edi, edi
mov ecx, ecx
mov esi, dword [esp + 0x24]
mov eax, dword [esi]
mov dword [esp + 0x54], eax
mov al, al
mov edi, dword [esp + 0x7c]
mov ecx, dword [esi + edi*4 - 4]
test cl, cl
mov ebp, dword [esp + 0x80]
lea eax, [ebp - 1]
imul eax, dword [esp + 0x34]
mov edx, dword [eax + esi]
mov dh, dh
lea eax, [eax + edi*4]
mov eax, dword [eax + esi - 4]
mov dl, dl
mov dword [esp + 0x5c], ebx
mov cl, cl
test ah, ah
mov ebx, dword [esp + 0x54]
cmp ebx, ecx
jne 0x1008d518
cmp ecx, edx
jne 0x1008d518
cmp edx, eax
jne 0x1008d518
mov dword [esp + 0x5c], 1
mov dl, dl
xor edx, edx
test ebp, ebp
jle 0x1008d41a
xor eax, eax
test edi, edi
jle 0x1008d40f
mov ecx, esi
lea esp, [esp]
mov dh, dh
cmp dword [ecx], ebx
jne 0x1008d402
add eax, 1
add ecx, 4
cmp eax, edi
jl 0x1008d3f0
jmp 0x1008d40f
test eax, 0x7e45
mov ah, ah
mov dh, dh
cmp eax, edi
jl 0x1008d41a
add esi, dword [esp + 0x34]
add edx, 1
cmp edx, ebp
jl 0x1008d3e1
xor esi, esi
test ebp, ebp
jle 0x1008d457
xor edx, edx
lea eax, [edi - 1]
test eax, eax
jl 0x1008d44c
lea ecx, [edx + eax*4]
add ecx, dword [esp + 0x24]
mov ebx, ebx
cmp dword [ecx], ebx
jne 0x1008d442
sub eax, 1
sub ecx, 4
test eax, eax
jge 0x1008d430
jmp 0x1008d44c
mov bh, bh
test dl, dl
mov bh, bh
test eax, eax
jge 0x1008d457
add edx, dword [esp + 0x34]
add esi, 1
cmp esi, ebp
jl 0x1008d422
lea esi, [ebp - 1]
test esi, esi
jl 0x1008d4b5
mov eax, dword [esp + 0x34]
mov edx, esi
imul edx, eax
mov ebx, eax
neg ebx
add edx, dword [esp + 0x24]
nop
xor eax, eax
test edi, edi
jle 0x1008d4a3
mov ebp, dword [esp + 0x54]
mov ecx, edx
lea esp, [esp]
test esi, esi
cmp dword [ecx], ebp
jne 0x1008d492
add eax, 1
add ecx, 4
cmp eax, edi
jl 0x1008d480
jmp 0x1008d49c
test dh, dh
mov dl, dl
mov ah, ah
cmp eax, edi
jl 0x1008d4ae
mov ebp, dword [esp + 0x80]
sub esi, 1
add edx, ebx
test esi, esi
jge 0x1008d470
jmp 0x1008d4b5
mov ebp, dword [esp + 0x80]
lea esi, [ebp - 1]
test esi, esi
jl 0x1008d518
mov ebx, dword [esp + 0x34]
mov edx, esi
imul edx, ebx
neg ebx
lea eax, [edi - 1]
test eax, eax
jl 0x1008d506
mov ebp, dword [esp + 0x54]
lea ecx, [edx + eax*4]
add ecx, dword [esp + 0x24]
lea esp, [esp]
test edx, edx
cmp dword [ecx], ebp
jne 0x1008d4f2
sub eax, 1
sub ecx, 4
test eax, eax
jge 0x1008d4e0
jmp 0x1008d4ff
mov al, al
test eax, 0x3885
mov al, al
test eax, eax
jge 0x1008d511
mov ebp, dword [esp + 0x80]
sub esi, 1
add edx, ebx
test esi, esi
jge 0x1008d4c7
jmp 0x1008d518
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 bh, bh
mov eax, dword [esp + 0xa8]
xor ecx, ecx
cmp eax, ecx
jne 0x1008d7fb
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 0x24]
sub ecx, ebp
js 0x1008e00f
mov edx, dword [esp + 0x60]
mov dword [esp + 0x28], edx
jmp 0x1008d570
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x20]
sub ecx, dword [esp + 0x7c]
mov dword [esp + 0x1c], 0
js 0x1008d7cd
mov edx, dword [esp + 0x28]
mov dword [esp + 0x2c], edx
xchg ebx, eax
xchg ebx, eax
mov ecx, ecx
xor eax, eax
mov dword [esp + 0x14], eax
test bl, bl
mov ebp, dword [esp + 0x48]
mov edx, edx
cmp dword [esp + 0x80], eax
mov dword [esp + 0x3c], eax
jle 0x1008d65b
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x30], eax
mov ebp, ebp
xor esi, esi
cmp dword [esp + 0x7c], esi
jle 0x1008d624
mov edi, dword [esp + 0x30]
mov edi, edi
sub ebp, 1
mov dh, dh
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.100628a0
add esp, 0x14
test eax, eax
je 0x1008d606
add dword [esp + 0x14], 1
mov cl, cl
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jge 0x1008d65b
add ecx, ebp
cmp ecx, eax
jl 0x1008d624
add esi, 1
add edi, 4
cmp esi, dword [esp + 0x7c]
jl 0x1008d5d0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
cmp eax, ecx
jge 0x1008d65b
lea edx, [eax + ebp]
cmp edx, ecx
jl 0x1008d65b
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 0x1008d5c0
mov eax, dword [esp + 0x14]
imul eax, eax, 0x64
cdq
idiv dword [esp + 0x48]
test eax, 0xdb4
cmp eax, dword [esp + 0x58]
jl 0x1008d7aa
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 esi, esi
mov ebp, ebp
test bh, bh
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 bh, bh
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.10118d49
add esp, 0x18
mov esi, esi
mov esi, dword [esp + 0x68]
mov edx, dword [esi + 0x10]
sub edx, dword [esi + 0x14]
je 0x1008d77c
push 0x10182559
push 0x10182558
mov ecx, esi
call fcn.1000cf80
test bh, bh
lea eax, [esp + 0xb4]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1008d786
sub eax, edx
lea eax, [esp + eax + 0xb4]
push eax
lea ecx, [esp + 0xb8]
push ecx
mov ecx, esi
call fcn.1000cf80
push ecx
pop ecx
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 0x1008d591
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 0x1008d570
jmp 0x1008e00f
cmp eax, 1
jne 0x1008daab
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x24]
sub eax, ebp
mov dword [esp + 0x20], eax
js 0x1008e00f
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
mov edi, edi
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x20]
sub edx, dword [esp + 0x7c]
mov dword [esp + 0x1c], 0
js 0x1008da8b
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], eax
xchg ebx, eax
xchg ebx, eax
push eax
pop eax
xor eax, eax
mov dword [esp + 0x14], eax
test eax, 0x3ef3
mov ebp, dword [esp + 0x48]
test ah, ah
cmp dword [esp + 0x80], eax
mov dword [esp + 0x4c], eax
jle 0x1008d91c
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x28], ecx
test dh, dh
xor esi, esi
cmp dword [esp + 0x7c], esi
jle 0x1008d8e5
mov edi, dword [esp + 0x28]
sub ebp, 1
test ch, ch
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.100628a0
add esp, 0x14
test eax, eax
je 0x1008d8c7
add dword [esp + 0x14], 1
push edx
pop edx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jge 0x1008d91c
add ecx, ebp
cmp ecx, eax
jl 0x1008d8e5
add esi, 1
add edi, 4
cmp esi, dword [esp + 0x7c]
jl 0x1008d891
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
cmp eax, ecx
jge 0x1008d91c
lea edx, [eax + ebp]
cmp edx, ecx
jl 0x1008d91c
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 0x1008d883
mov eax, dword [esp + 0x14]
imul eax, eax, 0x64
cdq
idiv dword [esp + 0x48]
test eax, eax
cmp eax, dword [esp + 0x58]
jl 0x1008da68
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 edi, edi
test ch, ch
xchg ebx, eax
xchg ebx, eax
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
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 + 0xf0]
push eax
lea ecx, [esp + 0xc8]
push ecx
call fcn.10118d49
add esp, 0x18
mov dl, dl
mov esi, dword [esp + 0x68]
mov edx, dword [esi + 0x10]
sub edx, dword [esi + 0x14]
je 0x1008da3a
push 0x10182559
push 0x10182558
mov ecx, esi
call fcn.1000cf80
push edx
pop edx
lea eax, [esp + 0xb4]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1008da44
sub eax, edx
lea eax, [esp + eax + 0xb4]
push eax
lea ecx, [esp + 0xb8]
push ecx
mov ecx, esi
call fcn.1000cf80
mov dh, dh
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 0x1008d851
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 0x1008d830
jmp 0x1008e00f
cmp eax, 2
jne 0x1008dd52
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 0x24]
sub ecx, ebp
js 0x1008e00f
mov dword [esp + 0x30], 0
nop
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x20]
sub eax, dword [esp + 0x7c]
mov dword [esp + 0x1c], eax
js 0x1008dd24
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
mov al, al
test dh, dh
xor eax, eax
mov dword [esp + 0x14], eax
test edx, edx
mov ebp, dword [esp + 0x48]
test bh, bh
cmp dword [esp + 0x80], eax
mov dword [esp + 0x4c], eax
jle 0x1008dbc0
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x28], edx
push edx
pop edx
xor esi, esi
cmp dword [esp + 0x7c], esi
jle 0x1008db8a
mov edi, dword [esp + 0x28]
sub ebp, 1
test edi, edi
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.100628a0
add esp, 0x14
test eax, eax
je 0x1008db6b
add dword [esp + 0x14], 1
mov ch, ch
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jge 0x1008dbc0
lea edx, [ecx + ebp]
cmp edx, eax
jl 0x1008db8a
add esi, 1
add edi, 4
cmp esi, dword [esp + 0x7c]
jl 0x1008db35
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
cmp eax, ecx
jge 0x1008dbc0
add eax, ebp
cmp eax, ecx
jl 0x1008dbc0
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 0x1008db27
mov eax, dword [esp + 0x14]
imul eax, eax, 0x64
cdq
idiv dword [esp + 0x48]
test dl, dl
cmp eax, dword [esp + 0x58]
jl 0x1008dd0c
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
push eax
pop eax
test dl, dl
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
mov dh, dh
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.10118d49
add esp, 0x18
test edi, edi
mov esi, dword [esp + 0x68]
mov edx, dword [esi + 0x10]
sub edx, dword [esi + 0x14]
je 0x1008dcde
push 0x10182559
push 0x10182558
mov ecx, esi
call fcn.1000cf80
mov esi, esi
lea eax, [esp + 0xb4]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1008dce8
sub eax, edx
lea eax, [esp + eax + 0xb4]
push eax
lea ecx, [esp + 0xb8]
push ecx
mov ecx, esi
call fcn.1000cf80
mov bh, bh
mov eax, dword [esp + 0x1c]
sub dword [esp + 0x2c], 4
sub eax, 1
test eax, eax
mov dword [esp + 0x1c], eax
jge 0x1008daf8
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 0x1008dad0
jmp 0x1008e00f
cmp eax, 3
jne 0x1008e00f
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x24]
sub eax, dword [esp + 0x80]
mov dword [esp + 0x20], eax
js 0x1008e00f
mov ecx, dword [esp + 0x38]
imul eax, ecx
mov dword [esp + 0x30], eax
mov eax, ecx
neg eax
mov dword [esp + 0x3c], eax
jmp 0x1008dd90
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x20]
sub eax, dword [esp + 0x7c]
mov dword [esp + 0x1c], eax
js 0x1008dff4
mov edx, dword [esp + 0x30]
lea eax, [edx + eax*4]
add eax, dword [esp + 0x60]
mov dword [esp + 0x2c], eax
test eax, 0x1f3c
test dl, dl
xor eax, eax
mov dword [esp + 0x14], eax
test ecx, ecx
mov ebp, dword [esp + 0x48]
test eax, 0x23ab
cmp dword [esp + 0x80], eax
mov dword [esp + 0x4c], eax
jle 0x1008de8e
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x28], ecx
lea esp, [esp]
test bh, bh
xor esi, esi
cmp dword [esp + 0x7c], esi
jle 0x1008de57
mov edi, dword [esp + 0x28]
mov edi, edi
sub ebp, 1
test ah, ah
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.100628a0
add esp, 0x14
test eax, eax
mov eax, dword [esp + 0x14]
je 0x1008de3c
add eax, 1
mov dword [esp + 0x14], eax
mov ecx, ecx
mov ecx, dword [esp + 0x40]
cmp eax, ecx
jge 0x1008de92
lea edx, [eax + ebp]
cmp edx, ecx
jl 0x1008de57
add esi, 1
add edi, 4
cmp esi, dword [esp + 0x7c]
jl 0x1008de00
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
cmp eax, ecx
jge 0x1008de92
lea edx, [eax + ebp]
cmp edx, ecx
jl 0x1008de92
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 0x1008ddf0
mov eax, dword [esp + 0x14]
imul eax, eax, 0x64
cdq
idiv dword [esp + 0x48]
test eax, 0x5088
cmp eax, dword [esp + 0x58]
jl 0x1008dfdc
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 dh, dh
mov ah, ah
test dl, dl
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
nop
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.10118d49
add esp, 0x18
test ebx, ebx
mov esi, dword [esp + 0x68]
mov edx, dword [esi + 0x10]
sub edx, dword [esi + 0x14]
je 0x1008dfae
push 0x10182559
push 0x10182558
mov ecx, esi
call fcn.1000cf80
mov bl, bl
lea eax, [esp + 0xb4]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1008dfb8
sub eax, edx
lea eax, [esp + eax + 0xb4]
push eax
lea ecx, [esp + 0xb8]
push ecx
mov ecx, esi
call fcn.1000cf80
mov esi, esi
mov eax, dword [esp + 0x1c]
sub dword [esp + 0x2c], 4
sub eax, 1
test eax, eax
mov dword [esp + 0x1c], eax
jge 0x1008ddb4
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 0x1008dd90
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x10], 0
jne 0x1008e029
mov ecx, dword [esp + 0xa0]
cmp dword [ecx + 0x32f4], 0
jne 0x1008e03b
mov edx, dword [esp + 0xac]
push edx
call fcn.101167de
add esp, 4
mov esi, esi
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x18], 0
je 0x1008e054
mov ecx, dword [esp + 0x24]
push ecx
call fcn.101167de
add esp, 4
test ah, ah
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 0x1008d120
pop esi
mov ecx, dword [esp + 0x100]
pop edi
pop ebp
pop ebx
xor ecx, esp
call fcn.10116cb9
add esp, 0xf8
ret
cmp dword [ebp + 0x10], 0
jne 0x1008e09b
cmp dword [ebx + 0x32f4], 0
jne 0x1008e05f
mov edx, dword [esp + 0x24]
push edx
call fcn.101167de
add esp, 4
mov esi, esi
jmp 0x1008e05f
jmp fcn.10105789