Function at 0x10084c40
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0xf8
mov eax, dword [0x101cc114]
xor eax, esp
mov dword [esp + 0xf4], eax
push ebx
push ebp
mov ebp, dword [esp + 0x104]
mov eax, dword [ebp + 4]
push esi
mov dword [esp + 0x14], ebp
mov dword [esp + 0xa0], eax
mov al, al
mov ebx, dword [ebp]
mov dword [esp + 0x9c], ebx
push ecx
pop ecx
mov ebx, ebx
mov ecx, dword [ebp + 0x44]
mov dword [esp + 0x38], ecx
mov cl, cl
mov edx, dword [ebp + 0x50]
mov dword [esp + 0x58], edx
mov dl, dl
mov eax, dword [ebp + 0x54]
mov dword [esp + 0xa4], eax
nop
push ecx
pop ecx
mov ecx, dword [ebp + 0x15c]
mov dword [esp + 0x50], ecx
mov ah, ah
mov edx, dword [ebp + 0x58]
mov dword [esp + 0xac], edx
push ebx
pop ebx
mov eax, dword [ebp + 0x48]
mov dword [esp + 0x60], eax
push eax
pop eax
mov ecx, dword [ebp + 0x4c]
mov dword [esp + 0x5c], ecx
mov dh, dh
mov ecx, dword [ebp + 0x160]
mov dword [esp + 0x6c], ecx
push ebx
pop ebx
push 0
push 0x101818e0
call fcn.1000a1c0
mov al, al
mov ah, ah
mov eax, eax
mov esi, dword [ebp + 8]
cmp esi, dword [ebp + 0xc]
mov dword [esp + 0x48], esi
jg 0x10085be5
push edi
jmp 0x10084d02
mov ebp, eax
cmp dword [ebp + 0x164], 0
jne 0x10085be4
mov edx, dword [ebp + 0x24]
imul edx, dword [esp + 0x3c]
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0x5c]
push edx
push eax
push ecx
call fcn.10119710
add esp, 0xc
mov bl, bl
push edx
pop edx
mov dword [esp + 0x24], 0
mov ch, ch
mov dl, dl
mov ch, ch
lea edi, [ebx + 0x3260]
push 0x3e8
push edi
call fcn.10057360
add esp, 8
mov esi, esi
test esi, esi
jl 0x10085c1d
mov edx, dword [esp + 0xa4]
cmp esi, dword [edx + 8]
jge 0x10085c1d
mov eax, edx
mov ecx, dword [eax + 4]
mov eax, dword [ecx + esi*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.1007e250
add esp, 0x1c
test eax, eax
push edi
jne 0x10084daa
call fcn.100573f0
add esp, 4
nop
jmp 0x10085bd0
call fcn.100573f0
add esp, 4
push ebx
pop ebx
mov edi, dword [esp + 0x24]
mov dword [esp + 0xac], edi
mov esi, esi
mov edx, dword [esp + 0x7c]
cmp edx, dword [ebp + 0x20]
jg 0x10085bfd
mov eax, dword [esp + 0x80]
cmp eax, dword [ebp + 0x24]
jg 0x10085bfd
cmp dword [ebp + 0x18], 0
jne 0x10084e23
test eax, eax
jle 0x10084ee7
mov esi, dword [esp + 0x7c]
mov ebx, dword [esp + 0x34]
mov edx, edi
add edx, 3
mov edi, eax
jmp 0x10084e00
test esi, esi
jle 0x10084e17
mov eax, edx
mov ecx, esi
mov dh, dh
mov byte [eax], 0
mov edi, edi
add eax, 4
sub ecx, 1
jne 0x10084e08
add edx, ebx
sub edi, 1
jne 0x10084e00
jmp 0x10084ee7
mov eax, dword [esp + 0x80]
imul eax, dword [esp + 0x34]
push eax
call fcn.10117399
add esp, 4
mov dword [esp + 0x24], eax
push ebx
pop ebx
test eax, eax
jne 0x10084e63
cmp dword [ebp + 0x10], eax
jne 0x10084e53
cmp dword [ebx + 0x32f8], eax
jne 0x10085bd0
push edi
call fcn.1011745c
add esp, 4
mov dh, dh
jmp 0x10085bd0
cmp dword [esp + 0x80], 0
jle 0x10084ee7
mov ecx, dword [esp + 0x80]
mov ebp, dword [esp + 0x24]
add edi, 1
mov dword [esp + 0x44], edi
mov dword [esp + 0x40], ecx
cmp dword [esp + 0x7c], 0
jle 0x10084ed6
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x7c]
mov esi, ebp
push ebx
pop ebx
push ebx
pop ebx
movzx eax, byte [ecx + 1]
mov ch, ch
movzx edx, byte [ecx]
push eax
pop eax
movzx edi, byte [ecx - 1]
mov ah, ah
add edi, edx
add edi, eax
mov eax, 0xaaaaaaab
mul edi
shr edx, 1
mov ch, ch
movzx eax, dl
mov edx, eax
shl edx, 8
or edx, eax
shl edx, 8
or edx, eax
mov dword [esi], edx
mov edi, edi
add ecx, 4
add esi, 4
sub ebx, 1
jne 0x10084e94
mov eax, dword [esp + 0x34]
add dword [esp + 0x44], eax
add ebp, eax
sub dword [esp + 0x40], 1
jne 0x10084e83
mov ah, ah
mov esi, esi
mov al, al
xor ebx, ebx
mov dword [esp + 0x10], ebx
mov edi, edi
lea eax, [esp + 0x10]
push eax
mov eax, dword [esp + 0x1c]
add eax, 0x5c
push 0x101817e0
push eax
call fcn.10119c85
add esp, 0xc
mov edi, edi
movzx ecx, byte [esp + 0x12]
mov dword [esp + 0x44], ecx
mov ecx, ecx
movzx edx, byte [esp + 0x11]
mov dword [esp + 0x6c], edx
mov edi, edi
mov eax, dword [esp + 0x10]
and eax, 0xff
mov dword [esp + 0x68], eax
mov bh, bh
mov dl, dl
push ecx
pop ecx
push ebx
pop ebx
push ebx
pop ebx
mov cl, cl
xchg ebx, eax
xchg ebx, eax
push ecx
pop ecx
mov bh, bh
push eax
pop eax
push ebx
pop ebx
mov edx, edx
mov bh, bh
mov esi, dword [esp + 0x24]
mov eax, dword [esi]
mov dword [esp + 0x50], eax
mov eax, eax
mov edi, dword [esp + 0x7c]
mov ecx, dword [esi + edi*4 - 4]
push ebx
pop ebx
mov ebp, dword [esp + 0x80]
lea eax, [ebp - 1]
imul eax, dword [esp + 0x34]
mov edx, dword [eax + esi]
push ebx
pop ebx
lea eax, [eax + edi*4]
mov eax, dword [eax + esi - 4]
xchg ebx, eax
xchg ebx, eax
mov dword [esp + 0x58], ebx
mov ah, ah
push ebx
pop ebx
mov ebx, dword [esp + 0x50]
cmp ebx, ecx
jne 0x100850e4
cmp ecx, edx
jne 0x100850e4
cmp edx, eax
jne 0x100850e4
mov dword [esp + 0x58], 1
mov dh, dh
xor edx, edx
test ebp, ebp
jle 0x10084fe7
xor eax, eax
test edi, edi
jle 0x10084fdc
mov ecx, esi
lea ecx, [ecx]
mov edi, edi
cmp dword [ecx], ebx
jne 0x10084fd2
add eax, 1
add ecx, 4
cmp eax, edi
jl 0x10084fc0
jmp 0x10084fdc
mov ebx, ebx
mov ecx, ecx
mov esi, esi
cmp eax, edi
jl 0x10084fe7
add esi, dword [esp + 0x34]
add edx, 1
cmp edx, ebp
jl 0x10084fb5
xor esi, esi
test ebp, ebp
jle 0x10085027
xor edx, edx
nop
lea eax, [edi - 1]
test eax, eax
jl 0x1008501c
lea ecx, [edx + eax*4]
add ecx, dword [esp + 0x24]
mov edi, edi
mov ch, ch
cmp dword [ecx], ebx
jne 0x10085012
sub eax, 1
sub ecx, 4
test eax, eax
jge 0x10085000
jmp 0x1008501c
mov ebp, ebp
push ecx
pop ecx
mov dl, dl
test eax, eax
jge 0x10085027
add edx, dword [esp + 0x34]
add esi, 1
cmp esi, ebp
jl 0x10084ff0
lea esi, [ebp - 1]
test esi, esi
jl 0x10085085
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 0x10085073
mov ebp, dword [esp + 0x50]
mov ecx, edx
lea esp, [esp]
mov eax, eax
cmp dword [ecx], ebp
jne 0x10085062
add eax, 1
add ecx, 4
cmp eax, edi
jl 0x10085050
jmp 0x1008506c
mov ebp, ebp
push edx
pop edx
mov ah, ah
cmp eax, edi
jl 0x1008507e
mov ebp, dword [esp + 0x80]
sub esi, 1
add edx, ebx
test esi, esi
jge 0x10085040
jmp 0x10085085
mov ebp, dword [esp + 0x80]
lea esi, [ebp - 1]
test esi, esi
jl 0x100850e4
mov ebx, dword [esp + 0x34]
mov edx, esi
imul edx, ebx
neg ebx
lea eax, [edi - 1]
test eax, eax
jl 0x100850d2
mov ebp, dword [esp + 0x50]
lea ecx, [edx + eax*4]
add ecx, dword [esp + 0x24]
lea esp, [esp]
mov al, al
cmp dword [ecx], ebp
jne 0x100850c2
sub eax, 1
sub ecx, 4
test eax, eax
jge 0x100850b0
jmp 0x100850cb
mov ebx, ebx
nop
push edx
pop edx
test eax, eax
jge 0x100850dd
mov ebp, dword [esp + 0x80]
sub esi, 1
add edx, ebx
test esi, esi
jge 0x10085097
jmp 0x100850e4
mov ebp, dword [esp + 0x80]
mov ecx, ebp
imul ecx, edi
mov dword [esp + 0x74], ecx
imul ecx, dword [esp + 0x54]
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
lea edx, [edx + ecx + 1]
mov dword [esp + 0x38], edx
mov eax, eax
mov eax, dword [esp + 0xb0]
xor ecx, ecx
cmp eax, ecx
jne 0x100853b6
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 0x24]
sub ecx, ebp
js 0x10085b80
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x28], edx
jmp 0x10085140
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x20]
sub ecx, dword [esp + 0x7c]
mov dword [esp + 0x1c], 0
js 0x10085388
mov edx, dword [esp + 0x28]
mov dword [esp + 0x2c], edx
mov ebp, ebp
mov eax, eax
xor eax, eax
mov dword [esp + 0x14], eax
mov ah, ah
mov ebp, dword [esp + 0x74]
mov eax, eax
cmp dword [esp + 0x80], eax
mov dword [esp + 0x40], eax
jle 0x1008522b
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x30], eax
mov dh, dh
xor esi, esi
cmp dword [esp + 0x7c], esi
jle 0x100851f4
mov edi, dword [esp + 0x30]
mov edi, edi
sub ebp, 1
mov bl, bl
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x68]
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.10061e30
add esp, 0x14
test eax, eax
je 0x100851d6
add dword [esp + 0x14], 1
mov cl, cl
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jge 0x10085239
add ecx, ebp
cmp ecx, eax
jl 0x100851f4
add esi, 1
add edi, 4
cmp esi, dword [esp + 0x7c]
jl 0x100851a0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x38]
cmp eax, ecx
jge 0x10085239
lea edx, [eax + ebp]
cmp edx, ecx
jl 0x1008522b
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
add ebx, dword [esp + 0x34]
add dword [esp + 0x30], ecx
add eax, 1
cmp eax, dword [esp + 0x80]
mov dword [esp + 0x40], eax
jl 0x10085190
mov edx, dword [esp + 0x38]
cmp dword [esp + 0x14], edx
jl 0x10085365
xor eax, eax
mov byte [esp + 0xb4], 0
mov dword [esp + 0xb5], eax
mov dword [esp + 0xb9], eax
mov dword [esp + 0xbd], eax
mov dword [esp + 0xc1], eax
mov dword [esp + 0xc5], eax
mov dword [esp + 0xc9], eax
mov dword [esp + 0xcd], eax
mov word [esp + 0xd1], ax
mov byte [esp + 0xd3], al
xchg ebx, eax
xchg ebx, eax
mov bl, bl
push ebx
pop ebx
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], al
mov dh, dh
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
add eax, ecx
mov ecx, dword [esp + 0x54]
push eax
mov eax, dword [esp + 0x68]
add edx, eax
push edx
mov edx, dword [esp + 0x54]
push ecx
push edx
lea eax, [esp + 0x108]
push eax
lea ecx, [esp + 0xc8]
push ecx
call fcn.101191d0
add esp, 0x18
mov dl, dl
mov esi, dword [esp + 0x70]
cmp dword [esi + 0x14], 0
jbe 0x1008533e
push 1
push 0x10181488
mov ecx, esi
call fcn.1000a0d0
push edx
pop edx
lea eax, [esp + 0xb4]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10085348
sub eax, edx
push eax
lea edx, [esp + 0xb8]
push edx
mov ecx, esi
call fcn.1000a0d0
push ecx
pop ecx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edx, dword [ecx + 0x20]
sub edx, dword [esp + 0x7c]
add dword [esp + 0x2c], 4
add eax, 1
cmp eax, edx
mov dword [esp + 0x1c], eax
jle 0x10085161
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x28], ecx
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + 0x24]
sub ecx, dword [esp + 0x80]
add eax, 1
cmp eax, ecx
mov dword [esp + 0x20], eax
jle 0x10085140
jmp 0x10085b80
cmp eax, 1
jne 0x10085658
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x24]
sub eax, ebp
mov dword [esp + 0x20], eax
js 0x10085b80
mov edx, dword [esp + 0x3c]
imul eax, edx
mov ecx, edx
neg ecx
add eax, dword [esp + 0x5c]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x30], eax
lea esp, [esp]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x20]
sub ecx, dword [esp + 0x7c]
mov dword [esp + 0x1c], 0
js 0x10085638
mov edx, dword [esp + 0x30]
mov dword [esp + 0x2c], edx
mov bl, bl
mov dl, dl
xor eax, eax
mov dword [esp + 0x14], eax
mov cl, cl
mov ebp, dword [esp + 0x74]
push edx
pop edx
cmp dword [esp + 0x80], eax
mov dword [esp + 0x48], eax
jle 0x100854db
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x28], eax
push edx
pop edx
xor esi, esi
cmp dword [esp + 0x7c], esi
jle 0x100854a4
mov edi, dword [esp + 0x28]
mov edi, edi
sub ebp, 1
mov edi, edi
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x68]
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.10061e30
add esp, 0x14
test eax, eax
je 0x10085486
add dword [esp + 0x14], 1
mov dh, dh
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jge 0x100854e9
add ecx, ebp
cmp ecx, eax
jl 0x100854a4
add esi, 1
add edi, 4
cmp esi, dword [esp + 0x7c]
jl 0x10085450
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x38]
cmp eax, ecx
jge 0x100854e9
lea edx, [eax + ebp]
cmp edx, ecx
jl 0x100854db
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x3c]
add ebx, dword [esp + 0x34]
add dword [esp + 0x28], ecx
add eax, 1
cmp eax, dword [esp + 0x80]
mov dword [esp + 0x48], eax
jl 0x10085440
mov edx, dword [esp + 0x38]
cmp dword [esp + 0x14], edx
jl 0x10085615
xor eax, eax
mov byte [esp + 0xb4], 0
mov dword [esp + 0xb5], eax
mov dword [esp + 0xb9], eax
mov dword [esp + 0xbd], eax
mov dword [esp + 0xc1], eax
mov dword [esp + 0xc5], eax
mov dword [esp + 0xc9], eax
mov dword [esp + 0xcd], eax
mov word [esp + 0xd1], ax
mov byte [esp + 0xd3], al
mov bl, bl
mov ch, ch
push eax
pop 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], al
xchg ebx, eax
xchg ebx, eax
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
add eax, ecx
mov ecx, dword [esp + 0x54]
push eax
mov eax, dword [esp + 0x68]
add edx, eax
push edx
mov edx, dword [esp + 0x54]
push ecx
push edx
lea eax, [esp + 0xf0]
push eax
lea ecx, [esp + 0xc8]
push ecx
call fcn.101191d0
add esp, 0x18
mov eax, eax
mov esi, dword [esp + 0x70]
cmp dword [esi + 0x14], 0
jbe 0x100855ee
push 1
push 0x10181488
mov ecx, esi
call fcn.1000a0d0
mov ecx, ecx
lea eax, [esp + 0xb4]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x100855f8
sub eax, edx
push eax
lea edx, [esp + 0xb8]
push edx
mov ecx, esi
call fcn.1000a0d0
push edx
pop edx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edx, dword [ecx + 0x20]
sub edx, dword [esp + 0x7c]
add dword [esp + 0x2c], 4
add eax, 1
cmp eax, edx
mov dword [esp + 0x1c], eax
jle 0x10085411
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x40]
add dword [esp + 0x30], ecx
sub eax, 1
test eax, eax
mov dword [esp + 0x20], eax
jge 0x100853f0
jmp 0x10085b80
cmp eax, 2
jne 0x100858e9
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x24]
sub eax, ebp
mov dword [esp + 0x20], ecx
js 0x10085b80
mov dword [esp + 0x30], 0
lea esp, [esp]
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x20]
sub eax, dword [esp + 0x7c]
mov dword [esp + 0x1c], eax
js 0x100858bb
mov edx, dword [esp + 0x30]
lea eax, [edx + eax*4]
add eax, dword [esp + 0x5c]
mov dword [esp + 0x2c], eax
mov ecx, ecx
mov cl, cl
xor eax, eax
mov dword [esp + 0x14], eax
mov dh, dh
mov ebp, dword [esp + 0x74]
mov bl, bl
cmp dword [esp + 0x80], eax
mov dword [esp + 0x48], eax
jle 0x1008576b
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x28], ecx
push edx
pop edx
xor esi, esi
cmp dword [esp + 0x7c], esi
jle 0x10085734
mov edi, dword [esp + 0x28]
sub ebp, 1
nop
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x68]
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.10061e30
add esp, 0x14
test eax, eax
je 0x10085716
add dword [esp + 0x14], 1
mov dh, dh
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jge 0x10085779
add ecx, ebp
cmp ecx, eax
jl 0x10085734
add esi, 1
add edi, 4
cmp esi, dword [esp + 0x7c]
jl 0x100856e1
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x38]
cmp eax, ecx
jge 0x10085779
lea edx, [eax + ebp]
cmp edx, ecx
jl 0x1008576b
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x3c]
add ebx, dword [esp + 0x34]
add dword [esp + 0x28], ecx
add eax, 1
cmp eax, dword [esp + 0x80]
mov dword [esp + 0x48], eax
jl 0x100856d3
mov edx, dword [esp + 0x38]
cmp dword [esp + 0x14], edx
jl 0x100858a3
xor eax, eax
mov byte [esp + 0xb4], 0
mov dword [esp + 0xb5], eax
mov dword [esp + 0xb9], eax
mov dword [esp + 0xbd], eax
mov dword [esp + 0xc1], eax
mov dword [esp + 0xc5], eax
mov dword [esp + 0xc9], eax
mov dword [esp + 0xcd], eax
mov word [esp + 0xd1], ax
mov byte [esp + 0xd3], al
nop
mov dl, dl
mov dh, dh
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], al
push ebx
pop ebx
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
add eax, ecx
mov ecx, dword [esp + 0x54]
push eax
mov eax, dword [esp + 0x68]
add edx, eax
push edx
mov edx, dword [esp + 0x54]
push ecx
push edx
lea eax, [esp + 0xe4]
push eax
lea ecx, [esp + 0xc8]
push ecx
call fcn.101191d0
add esp, 0x18
mov dh, dh
mov esi, dword [esp + 0x70]
cmp dword [esi + 0x14], 0
jbe 0x1008587c
push 1
push 0x10181488
mov ecx, esi
call fcn.1000a0d0
nop
lea eax, [esp + 0xb4]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10085886
sub eax, edx
push eax
lea edx, [esp + 0xb8]
push edx
mov ecx, esi
call fcn.1000a0d0
push eax
pop eax
mov eax, dword [esp + 0x1c]
sub dword [esp + 0x2c], 4
sub eax, 1
test eax, eax
mov dword [esp + 0x1c], eax
jge 0x100856a4
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x30], ecx
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + 0x24]
sub ecx, dword [esp + 0x80]
add eax, 1
cmp eax, ecx
mov dword [esp + 0x20], eax
jle 0x10085680
jmp 0x10085b80
cmp eax, 3
jne 0x10085b80
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x24]
sub eax, dword [esp + 0x80]
mov dword [esp + 0x20], eax
js 0x10085b80
mov ecx, dword [esp + 0x3c]
imul eax, ecx
mov dword [esp + 0x30], eax
mov eax, ecx
neg eax
mov dword [esp + 0x40], eax
lea ecx, [ecx]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x20]
sub eax, dword [esp + 0x7c]
mov dword [esp + 0x1c], eax
js 0x10085b65
mov ecx, dword [esp + 0x30]
mov edx, eax
lea eax, [ecx + edx*4]
add eax, dword [esp + 0x5c]
mov dword [esp + 0x2c], eax
mov dl, dl
mov bl, bl
xor eax, eax
mov dword [esp + 0x14], eax
push ecx
pop ecx
mov ebp, dword [esp + 0x74]
mov eax, eax
cmp dword [esp + 0x80], eax
mov dword [esp + 0x48], eax
jle 0x10085a0e
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x28], eax
mov eax, eax
xor esi, esi
cmp dword [esp + 0x7c], esi
jle 0x100859d7
mov edi, dword [esp + 0x28]
sub ebp, 1
push edx
pop edx
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x68]
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.10061e30
add esp, 0x14
test eax, eax
je 0x100859b9
add dword [esp + 0x14], 1
mov ebx, ebx
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jge 0x10085a1e
add ecx, ebp
cmp ecx, eax
jl 0x100859d7
add esi, 1
add edi, 4
cmp esi, dword [esp + 0x7c]
jl 0x10085983
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x38]
cmp eax, ecx
jge 0x10085a1e
lea edx, [eax + ebp]
cmp edx, ecx
jl 0x10085a16
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x3c]
add ebx, dword [esp + 0x34]
add dword [esp + 0x28], ecx
add eax, 1
cmp eax, dword [esp + 0x80]
mov dword [esp + 0x48], eax
jl 0x10085975
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x14]
cmp eax, ecx
jl 0x10085b4d
xor eax, eax
mov byte [esp + 0xb4], 0
mov dword [esp + 0xb5], eax
mov dword [esp + 0xb9], eax
mov dword [esp + 0xbd], eax
mov dword [esp + 0xc1], eax
mov dword [esp + 0xc5], eax
mov dword [esp + 0xc9], eax
mov dword [esp + 0xcd], eax
mov word [esp + 0xd1], ax
mov byte [esp + 0xd3], al
mov dh, dh
mov edx, edx
mov al, al
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], al
push edx
pop edx
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
add edx, eax
mov eax, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x68]
add ecx, edx
push ecx
mov ecx, dword [esp + 0x54]
push eax
push ecx
lea edx, [esp + 0xfc]
push edx
lea eax, [esp + 0xc8]
push eax
call fcn.101191d0
add esp, 0x18
mov ebx, ebx
mov esi, dword [esp + 0x70]
cmp dword [esi + 0x14], 0
jbe 0x10085b23
push 1
push 0x10181488
mov ecx, esi
call fcn.1000a0d0
mov ebx, ebx
lea eax, [esp + 0xb4]
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10085b30
sub eax, edx
push eax
lea ecx, [esp + 0xb8]
push ecx
mov ecx, esi
call fcn.1000a0d0
mov ebp, ebp
mov eax, dword [esp + 0x1c]
sub dword [esp + 0x2c], 4
sub eax, 1
test eax, eax
mov dword [esp + 0x1c], eax
jge 0x10085946
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x40]
add dword [esp + 0x30], edx
sub eax, 1
test eax, eax
mov dword [esp + 0x20], eax
jge 0x10085920
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x10], 0
jne 0x10085b9a
mov ecx, dword [esp + 0xa0]
cmp dword [ecx + 0x32f8], 0
jne 0x10085bac
mov edx, dword [esp + 0xac]
push edx
call fcn.1011745c
add esp, 4
mov bh, bh
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x18], 0
je 0x10085bc5
mov ecx, dword [esp + 0x24]
push ecx
call fcn.1011745c
add esp, 4
mov eax, eax
mov esi, dword [esp + 0x4c]
mov ebx, dword [esp + 0xa0]
mov eax, dword [esp + 0x18]
add esi, 1
cmp esi, dword [eax + 0xc]
mov dword [esp + 0x4c], esi
jle 0x10084d00
pop edi
mov ecx, dword [esp + 0x100]
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10117937
add esp, 0xf8
ret
cmp dword [ebp + 0x10], 0
jne 0x10085c0c
cmp dword [ebx + 0x32f8], 0
jne 0x10085bd0
mov edx, dword [esp + 0x24]
push edx
call fcn.1011745c
add esp, 4
mov ecx, ecx
jmp 0x10085bd0
jmp fcn.1010967c