Function at 0x10086820
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0xf8
mov eax, dword [0x101af0fc]
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
mov edi, edi
mov ebx, dword [ebp]
mov dword [esp + 0x9c], ebx
nop
test edi, edi
mov ecx, dword [ebp + 0x44]
mov dword [esp + 0x34], ecx
mov ecx, ecx
mov edx, dword [ebp + 0x50]
mov dword [esp + 0x5c], edx
mov ebx, ebx
mov eax, dword [ebp + 0x54]
mov dword [esp + 0xac], eax
mov edx, edx
test edx, edx
mov ecx, dword [ebp + 0x15c]
mov dword [esp + 0x54], ecx
test edi, edi
mov edx, dword [ebp + 0x58]
mov dword [esp + 0xa4], edx
test cl, cl
mov eax, dword [ebp + 0x48]
mov dword [esp + 0x70], eax
test eax, 0xc8a
mov ecx, dword [ebp + 0x4c]
mov dword [esp + 0x60], ecx
test ah, ah
mov ecx, dword [ebp + 0x160]
mov dword [esp + 0x64], ecx
test eax, 0x1808
push 0x10164994
push 0x10164994
call fcn.1000d070
test esi, esi
mov ebx, ebx
test eax, 0x54ce
mov edi, dword [ebp + 8]
cmp edi, dword [ebp + 0xc]
mov dword [esp + 0x4c], edi
jg 0x1008782c
push esi
jmp 0x100868f2
mov ebp, eax
cmp dword [ebp + 0x164], 0
jne 0x1008782b
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.10102690
add esp, 0xc
mov edi, edi
mov esi, esi
mov dword [esp + 0x24], 0
mov ecx, ecx
test bl, bl
nop
lea esi, [ebx + 0x325c]
push 0x3e8
push esi
call fcn.10053af0
add esp, 8
mov dl, dl
test edi, edi
jl 0x10087864
mov edx, dword [esp + 0xa4]
cmp edi, dword [edx + 8]
jge 0x10087864
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.10074300
add esp, 0x1c
test eax, eax
push esi
jne 0x1008699a
call fcn.10053b80
add esp, 4
push ebx
pop ebx
jmp 0x10087817
call fcn.10053b80
add esp, 4
mov eax, eax
mov esi, dword [esp + 0x24]
mov dword [esp + 0xac], esi
test bl, bl
mov edx, dword [esp + 0x7c]
cmp edx, dword [ebp + 0x20]
jge 0x10087844
mov eax, dword [esp + 0x80]
cmp eax, dword [ebp + 0x24]
jge 0x10087844
cmp dword [ebp + 0x18], 0
jne 0x10086a13
test eax, eax
jle 0x10086add
mov ebx, dword [esp + 0x34]
mov edx, esi
mov esi, dword [esp + 0x7c]
add edx, 3
mov edi, eax
jmp 0x100869f0
test esi, esi
jle 0x10086a07
mov eax, edx
mov ecx, esi
test edi, edi
mov byte [eax], 0
mov ch, ch
add eax, 4
sub ecx, 1
jne 0x100869f8
add edx, ebx
sub edi, 1
jne 0x100869f0
jmp 0x10086add
mov eax, dword [esp + 0x80]
imul eax, dword [esp + 0x34]
push eax
call fcn.1010136f
add esp, 4
mov dword [esp + 0x24], eax
mov ecx, ecx
test eax, eax
jne 0x10086a53
cmp dword [ebp + 0x10], eax
jne 0x10086a43
cmp dword [ebx + 0x32f0], eax
jne 0x10087817
push esi
call fcn.10101432
add esp, 4
mov dh, dh
jmp 0x10087817
cmp dword [esp + 0x80], 0
jle 0x10086add
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 0x10086acc
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x7c]
mov esi, ebp
test eax, 0x50f3
mov esi, esi
movzx eax, byte [ecx + 1]
mov edx, edx
movzx edx, byte [ecx]
test esi, esi
movzx edi, byte [ecx - 1]
mov ah, ah
add edi, edx
add edi, eax
mov eax, 0xaaaaaaab
mul edi
shr edx, 1
nop
movzx eax, dl
mov edx, eax
shl edx, 8
or edx, eax
shl edx, 8
or edx, eax
mov dword [esi], edx
mov al, al
add ecx, 4
add esi, 4
sub ebx, 1
jne 0x10086a88
mov eax, dword [esp + 0x34]
add dword [esp + 0x44], eax
add ebp, eax
sub dword [esp + 0x3c], 1
jne 0x10086a77
nop
test bl, bl
test bl, bl
xor ebx, ebx
mov dword [esp + 0x10], ebx
test eax, 0x3bdb
lea eax, [esp + 0x10]
push eax
mov eax, dword [esp + 0x1c]
add eax, 0x5c
push 0x10165670
push eax
call fcn.10104175
add esp, 0xc
mov ebp, ebp
movzx ecx, byte [esp + 0x12]
mov dword [esp + 0x44], ecx
test esi, esi
movzx edx, byte [esp + 0x11]
mov dword [esp + 0x6c], edx
push ebx
pop ebx
mov eax, dword [esp + 0x10]
and eax, 0xff
mov dword [esp + 0x70], eax
test bh, bh
push ecx
pop ecx
test edi, edi
test esi, esi
test eax, 0x53a7
push eax
pop eax
mov ebx, ebx
test ah, ah
mov dh, dh
test al, al
test bl, bl
test ch, ch
mov eax, eax
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]
xchg ebx, eax
xchg ebx, eax
mov ebp, dword [esp + 0x80]
lea eax, [ebp - 1]
imul eax, dword [esp + 0x34]
mov edx, dword [eax + esi]
test ah, ah
lea eax, [eax + edi*4]
mov eax, dword [eax + esi - 4]
test ebx, ebx
mov dword [esp + 0x5c], ebx
test esi, esi
xchg ebx, eax
xchg ebx, eax
mov ebx, dword [esp + 0x54]
cmp ebx, ecx
jne 0x10086cd7
cmp ecx, edx
jne 0x10086cd7
cmp edx, eax
jne 0x10086cd7
mov dword [esp + 0x5c], 1
mov ch, ch
xor edx, edx
test ebp, ebp
jle 0x10086bde
xor eax, eax
test edi, edi
jle 0x10086bd3
mov ecx, esi
mov al, al
cmp dword [ecx], ebx
jne 0x10086bca
add eax, 1
add ecx, 4
cmp eax, edi
jl 0x10086bb8
jmp 0x10086bd3
mov ebx, ebx
mov dh, dh
nop
cmp eax, edi
jl 0x10086bde
add esi, dword [esp + 0x34]
add edx, 1
cmp edx, ebp
jl 0x10086bb0
xor esi, esi
test ebp, ebp
jle 0x10086c1e
xor edx, edx
lea eax, [edi - 1]
test eax, eax
jl 0x10086c13
lea ecx, [edx + eax*4]
add ecx, dword [esp + 0x24]
push ebx
pop ebx
cmp dword [ecx], ebx
jne 0x10086c06
sub eax, 1
sub ecx, 4
test eax, eax
jge 0x10086bf4
jmp 0x10086c13
test ebx, ebx
test eax, 0x32b9
push ebx
pop ebx
test eax, eax
jge 0x10086c1e
add edx, dword [esp + 0x34]
add esi, 1
cmp esi, ebp
jl 0x10086be6
lea esi, [ebp - 1]
test esi, esi
jl 0x10086c77
mov eax, dword [esp + 0x34]
mov edx, esi
imul edx, eax
mov ebx, eax
neg ebx
add edx, dword [esp + 0x24]
xor eax, eax
test edi, edi
jle 0x10086c65
mov ebp, dword [esp + 0x54]
mov ecx, edx
test bl, bl
cmp dword [ecx], ebp
jne 0x10086c54
add eax, 1
add ecx, 4
cmp eax, edi
jl 0x10086c42
jmp 0x10086c5e
mov cl, cl
test edi, edi
mov cl, cl
cmp eax, edi
jl 0x10086c70
mov ebp, dword [esp + 0x80]
sub esi, 1
add edx, ebx
test esi, esi
jge 0x10086c36
jmp 0x10086c77
mov ebp, dword [esp + 0x80]
lea esi, [ebp - 1]
test esi, esi
jl 0x10086cd7
mov ebx, dword [esp + 0x34]
mov edx, esi
imul edx, ebx
neg ebx
lea esp, [esp]
lea eax, [edi - 1]
test eax, eax
jl 0x10086cc5
mov ebp, dword [esp + 0x54]
lea ecx, [edx + eax*4]
add ecx, dword [esp + 0x24]
test ebx, ebx
cmp dword [ecx], ebp
jne 0x10086cb4
sub eax, 1
sub ecx, 4
test eax, eax
jge 0x10086ca2
jmp 0x10086cbe
mov esi, esi
test ebx, ebx
mov cl, cl
test eax, eax
jge 0x10086cd0
mov ebp, dword [esp + 0x80]
sub esi, 1
add edx, ebx
test esi, esi
jge 0x10086c90
jmp 0x10086cd7
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 ah, ah
mov eax, dword [esp + 0xa8]
xor ecx, ecx
cmp eax, ecx
jne 0x10086fb7
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 0x24]
sub ecx, ebp
js 0x100877c7
mov edx, dword [esp + 0x60]
mov dword [esp + 0x28], edx
lea ebx, [ebx]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x20]
sub ecx, dword [esp + 0x7c]
mov dword [esp + 0x1c], 0
js 0x10086f89
mov edx, dword [esp + 0x28]
mov dword [esp + 0x2c], edx
test ah, ah
test cl, cl
xor eax, eax
mov dword [esp + 0x14], eax
mov ah, ah
mov ebp, dword [esp + 0x48]
mov edi, edi
cmp dword [esp + 0x80], eax
mov dword [esp + 0x3c], eax
jle 0x10086e1b
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x30], eax
test cl, cl
xor esi, esi
cmp dword [esp + 0x7c], esi
jle 0x10086de4
mov edi, dword [esp + 0x30]
mov edi, edi
sub ebp, 1
test edx, edx
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.1005e170
add esp, 0x14
test eax, eax
je 0x10086dc6
add dword [esp + 0x14], 1
push eax
pop eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jge 0x10086e1b
add ecx, ebp
cmp ecx, eax
jl 0x10086de4
add esi, 1
add edi, 4
cmp esi, dword [esp + 0x7c]
jl 0x10086d90
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
cmp eax, ecx
jge 0x10086e1b
lea edx, [eax + ebp]
cmp edx, ecx
jl 0x10086e1b
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 0x10086d80
mov eax, dword [esp + 0x14]
imul eax, eax, 0x64
cdq
idiv dword [esp + 0x48]
test bl, bl
cmp eax, dword [esp + 0x58]
jl 0x10086f66
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 cl, cl
test edi, edi
test ch, ch
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 ah, ah
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.10103959
add esp, 0x18
nop
mov esi, dword [esp + 0x68]
mov edx, dword [esi + 0x10]
sub edx, dword [esi + 0x14]
je 0x10086f38
push 0x10165379
push 0x10165378
mov ecx, esi
call fcn.1000cf60
test ecx, ecx
lea eax, [esp + 0xb4]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10086f42
sub eax, edx
lea eax, [esp + eax + 0xb4]
push eax
lea ecx, [esp + 0xb8]
push ecx
mov ecx, esi
call fcn.1000cf60
mov dl, dl
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 0x10086d51
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 0x10086d30
jmp 0x100877c7
cmp eax, 1
jne 0x1008726d
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x24]
sub eax, ebp
mov dword [esp + 0x20], eax
js 0x100877c7
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 0x1008724d
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], eax
test edx, edx
mov ah, ah
xor eax, eax
mov dword [esp + 0x14], eax
test ah, ah
mov ebp, dword [esp + 0x48]
mov ebx, ebx
cmp dword [esp + 0x80], eax
mov dword [esp + 0x4c], eax
jle 0x100870db
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x28], ecx
mov bl, bl
xor esi, esi
cmp dword [esp + 0x7c], esi
jle 0x100870a4
mov edi, dword [esp + 0x28]
mov edi, edi
sub ebp, 1
test ebx, ebx
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.1005e170
add esp, 0x14
test eax, eax
je 0x10087086
add dword [esp + 0x14], 1
mov dl, dl
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jge 0x100870db
add ecx, ebp
cmp ecx, eax
jl 0x100870a4
add esi, 1
add edi, 4
cmp esi, dword [esp + 0x7c]
jl 0x10087050
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
cmp eax, ecx
jge 0x100870db
lea edx, [eax + ebp]
cmp edx, ecx
jl 0x100870db
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 0x10087040
mov eax, dword [esp + 0x14]
imul eax, eax, 0x64
cdq
idiv dword [esp + 0x48]
test eax, eax
cmp eax, dword [esp + 0x58]
jl 0x1008722a
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 ecx, ecx
mov ch, ch
test edx, edx
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.10103959
add esp, 0x18
push eax
pop eax
mov esi, dword [esp + 0x68]
mov edx, dword [esi + 0x10]
sub edx, dword [esi + 0x14]
je 0x100871fc
push 0x10165379
push 0x10165378
mov ecx, esi
call fcn.1000cf60
test eax, 0x5d69
lea eax, [esp + 0xb4]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10087206
sub eax, edx
lea eax, [esp + eax + 0xb4]
push eax
lea ecx, [esp + 0xb8]
push ecx
mov ecx, esi
call fcn.1000cf60
test ch, ch
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 0x10087011
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 0x10086ff0
jmp 0x100877c7
cmp eax, 2
jne 0x1008751c
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 0x24]
sub ecx, ebp
js 0x100877c7
mov dword [esp + 0x30], 0
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x20]
sub eax, dword [esp + 0x7c]
mov dword [esp + 0x1c], eax
js 0x100874ee
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
lea esp, [esp]
mov cl, cl
nop
xor eax, eax
mov dword [esp + 0x14], eax
push ecx
pop ecx
mov ebp, dword [esp + 0x48]
xchg ebx, eax
xchg ebx, eax
cmp dword [esp + 0x80], eax
mov dword [esp + 0x4c], eax
jle 0x1008738b
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x28], edx
mov edi, edi
test ah, ah
xor esi, esi
cmp dword [esp + 0x7c], esi
jle 0x10087355
mov edi, dword [esp + 0x28]
mov edi, edi
sub ebp, 1
test edx, edx
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.1005e170
add esp, 0x14
test eax, eax
je 0x10087336
add dword [esp + 0x14], 1
mov dh, dh
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jge 0x1008738b
lea edx, [ecx + ebp]
cmp edx, eax
jl 0x10087355
add esi, 1
add edi, 4
cmp esi, dword [esp + 0x7c]
jl 0x10087300
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
cmp eax, ecx
jge 0x1008738b
add eax, ebp
cmp eax, ecx
jl 0x1008738b
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 0x100872f0
mov eax, dword [esp + 0x14]
imul eax, eax, 0x64
cdq
idiv dword [esp + 0x48]
mov ah, ah
cmp eax, dword [esp + 0x58]
jl 0x100874d6
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
xchg ebx, eax
xchg ebx, eax
test esi, esi
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
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 + 0xe4]
push eax
lea ecx, [esp + 0xc8]
push ecx
call fcn.10103959
add esp, 0x18
test ecx, ecx
mov esi, dword [esp + 0x68]
mov edx, dword [esi + 0x10]
sub edx, dword [esi + 0x14]
je 0x100874a8
push 0x10165379
push 0x10165378
mov ecx, esi
call fcn.1000cf60
test ah, ah
lea eax, [esp + 0xb4]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x100874b2
sub eax, edx
lea eax, [esp + eax + 0xb4]
push eax
lea ecx, [esp + 0xb8]
push ecx
mov ecx, esi
call fcn.1000cf60
push edx
pop edx
mov eax, dword [esp + 0x1c]
sub dword [esp + 0x2c], 4
sub eax, 1
test eax, eax
mov dword [esp + 0x1c], eax
jge 0x100872c0
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 0x10087291
jmp 0x100877c7
cmp eax, 3
jne 0x100877c7
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x24]
sub eax, dword [esp + 0x80]
mov dword [esp + 0x20], eax
js 0x100877c7
mov ecx, dword [esp + 0x38]
imul eax, ecx
mov dword [esp + 0x30], eax
mov eax, ecx
neg eax
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x20]
sub eax, dword [esp + 0x7c]
mov dword [esp + 0x1c], eax
js 0x100877ac
mov edx, dword [esp + 0x30]
lea eax, [edx + eax*4]
add eax, dword [esp + 0x60]
mov dword [esp + 0x2c], eax
test edi, edi
mov dh, dh
xor eax, eax
mov dword [esp + 0x14], eax
test ebx, ebx
mov ebp, dword [esp + 0x48]
nop
cmp dword [esp + 0x80], eax
mov dword [esp + 0x4c], eax
jle 0x10087645
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x28], ecx
test cl, cl
xor esi, esi
cmp dword [esp + 0x7c], esi
jle 0x1008760e
mov edi, dword [esp + 0x28]
sub ebp, 1
test eax, 0x42ce
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.1005e170
add esp, 0x14
test eax, eax
mov eax, dword [esp + 0x14]
je 0x100875f3
add eax, 1
mov dword [esp + 0x14], eax
test ah, ah
mov ecx, dword [esp + 0x40]
cmp eax, ecx
jge 0x10087649
lea edx, [eax + ebp]
cmp edx, ecx
jl 0x1008760e
add esi, 1
add edi, 4
cmp esi, dword [esp + 0x7c]
jl 0x100875b4
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
cmp eax, ecx
jge 0x10087649
lea edx, [eax + ebp]
cmp edx, ecx
jl 0x10087649
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 0x100875a2
mov eax, dword [esp + 0x14]
imul eax, eax, 0x64
cdq
idiv dword [esp + 0x48]
test ah, ah
cmp eax, dword [esp + 0x58]
jl 0x10087794
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 edx
pop edx
mov eax, eax
mov cl, cl
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
test al, al
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.10103959
add esp, 0x18
test esi, esi
mov esi, dword [esp + 0x68]
mov edx, dword [esi + 0x10]
sub edx, dword [esi + 0x14]
je 0x10087763
push 0x10165379
push 0x10165378
mov ecx, esi
call fcn.1000cf60
mov ecx, ecx
lea eax, [esp + 0xb4]
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10087770
sub eax, edx
lea eax, [esp + eax + 0xb4]
push eax
lea ecx, [esp + 0xb8]
push ecx
mov ecx, esi
call fcn.1000cf60
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 0x10087574
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 0x10087550
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x10], 0
jne 0x100877e1
mov ecx, dword [esp + 0xa0]
cmp dword [ecx + 0x32f0], 0
jne 0x100877f3
mov edx, dword [esp + 0xac]
push edx
call fcn.10101432
add esp, 4
push eax
pop eax
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x18], 0
je 0x1008780c
mov ecx, dword [esp + 0x24]
push ecx
call fcn.10101432
add esp, 4
push eax
pop eax
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 0x100868f0
pop esi
mov ecx, dword [esp + 0x100]
pop edi
pop ebp
pop ebx
xor ecx, esp
call fcn.1010190d
add esp, 0xf8
ret
cmp dword [ebp + 0x10], 0
jne 0x10087853
cmp dword [ebx + 0x32f0], 0
jne 0x10087817
mov edx, dword [esp + 0x24]
push edx
call fcn.10101432
add esp, 4
test ebx, ebx
jmp 0x10087817
jmp fcn.100f364f