Function at 0x1008d0c0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0xf8
mov eax, dword [0x101ce2f4]
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
push ecx
pop ecx
mov ebx, dword [ebp]
mov dword [esp + 0x9c], ebx
xchg ebx, eax
xchg ebx, eax
test ebx, ebx
mov ecx, dword [ebp + 0x44]
mov dword [esp + 0x34], ecx
mov edx, edx
mov edx, dword [ebp + 0x50]
mov dword [esp + 0x5c], edx
mov cl, cl
mov eax, dword [ebp + 0x54]
mov dword [esp + 0xac], eax
mov ebx, ebx
test dh, dh
mov ecx, dword [ebp + 0x15c]
mov dword [esp + 0x54], ecx
test esi, esi
mov edx, dword [ebp + 0x58]
mov dword [esp + 0xa4], edx
mov bh, bh
mov eax, dword [ebp + 0x48]
mov dword [esp + 0x70], eax
mov ah, ah
mov ecx, dword [ebp + 0x4c]
mov dword [esp + 0x60], ecx
mov eax, eax
mov ecx, dword [ebp + 0x160]
mov dword [esp + 0x64], ecx
mov ch, ch
push 0x10182960
push 0x10182960
call fcn.1000d0b0
test bh, bh
test esi, esi
mov edx, edx
mov edi, dword [ebp + 8]
cmp edi, dword [ebp + 0xc]
mov dword [esp + 0x4c], edi
jg 0x1008e0cc
push esi
jmp 0x1008d182
mov ebp, eax
cmp dword [ebp + 0x164], 0
jne 0x1008e0cb
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.10117f40
add esp, 0xc
test dl, dl
test bh, bh
mov dword [esp + 0x24], 0
test ch, ch
test dl, dl
test al, al
lea esi, [ebx + 0x325c]
push 0x3e8
push esi
call fcn.10058490
add esp, 8
push edx
pop edx
test edi, edi
jl 0x1008e104
mov edx, dword [esp + 0xa4]
cmp edi, dword [edx + 8]
jge 0x1008e104
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.1007a320
add esp, 0x1c
test eax, eax
push esi
jne 0x1008d22b
call fcn.10058520
add esp, 4
push ebx
pop ebx
jmp 0x1008e0b7
call fcn.10058520
add esp, 4
push ebx
pop ebx
mov esi, dword [esp + 0x24]
mov dword [esp + 0xac], esi
push eax
pop eax
mov edx, dword [esp + 0x7c]
cmp edx, dword [ebp + 0x20]
jg 0x1008e0e4
mov eax, dword [esp + 0x80]
cmp eax, dword [ebp + 0x24]
jg 0x1008e0e4
cmp dword [ebp + 0x18], 0
jne 0x1008d2a2
test eax, eax
jle 0x1008d36d
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 0x1008d296
mov eax, edx
mov ecx, esi
nop
mov byte [eax], 0
push ecx
pop ecx
add eax, 4
sub ecx, 1
jne 0x1008d288
add edx, ebx
sub edi, 1
jne 0x1008d280
jmp 0x1008d36d
mov eax, dword [esp + 0x80]
imul eax, dword [esp + 0x34]
push eax
call fcn.10116bdc
add esp, 4
mov dword [esp + 0x24], eax
test dl, dl
test eax, eax
jne 0x1008d2e2
cmp dword [ebp + 0x10], eax
jne 0x1008d2d2
cmp dword [ebx + 0x32f4], eax
jne 0x1008e0b7
push esi
call fcn.10116c9f
add esp, 4
push ecx
pop ecx
jmp 0x1008e0b7
cmp dword [esp + 0x80], 0
jle 0x1008d36d
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 0x1008d35c
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x7c]
mov esi, ebp
test edx, edx
test eax, 0x7a5b
movzx eax, byte [ecx + 1]
mov ebp, ebp
movzx edx, byte [ecx]
mov dl, dl
movzx edi, byte [ecx - 1]
push eax
pop eax
add edi, edx
add edi, eax
mov eax, 0xaaaaaaab
mul edi
shr edx, 1
push eax
pop eax
movzx eax, dl
mov edx, eax
shl edx, 8
or edx, eax
shl edx, 8
or edx, eax
mov dword [esi], edx
mov ebx, ebx
add ecx, 4
add esi, 4
sub ebx, 1
jne 0x1008d317
mov eax, dword [esp + 0x34]
add dword [esp + 0x44], eax
add ebp, eax
sub dword [esp + 0x3c], 1
jne 0x1008d306
mov edx, edx
nop
push ebx
pop ebx
xor ebx, ebx
mov dword [esp + 0x10], ebx
nop
lea eax, [esp + 0x10]
push eax
mov eax, dword [esp + 0x1c]
add eax, 0x5c
push 0x10182840
push eax
call fcn.10119a25
add esp, 0xc
test ebx, ebx
movzx ecx, byte [esp + 0x12]
mov dword [esp + 0x44], ecx
push ecx
pop ecx
movzx edx, byte [esp + 0x11]
mov dword [esp + 0x6c], edx
test bh, bh
mov eax, dword [esp + 0x10]
and eax, 0xff
mov dword [esp + 0x70], eax
mov dl, dl
push eax
pop eax
test bl, bl
mov dl, dl
mov bl, bl
mov edi, edi
mov cl, cl
test ecx, ecx
test eax, eax
mov eax, eax
mov ebp, ebp
push ecx
pop ecx
test dh, dh
mov esi, dword [esp + 0x24]
mov eax, dword [esi]
mov dword [esp + 0x54], eax
mov eax, eax
mov edi, dword [esp + 0x7c]
mov ecx, dword [esi + edi*4 - 4]
test dh, dh
mov ebp, dword [esp + 0x80]
lea eax, [ebp - 1]
imul eax, dword [esp + 0x34]
mov edx, dword [eax + esi]
mov ebx, ebx
lea eax, [eax + edi*4]
mov eax, dword [eax + esi - 4]
mov ch, ch
mov dword [esp + 0x5c], ebx
mov edx, edx
mov edx, edx
mov ebx, dword [esp + 0x54]
cmp ebx, ecx
jne 0x1008d568
cmp ecx, edx
jne 0x1008d568
cmp edx, eax
jne 0x1008d568
mov dword [esp + 0x5c], 1
mov ch, ch
xor edx, edx
test ebp, ebp
jle 0x1008d46f
lea esp, [esp]
xor eax, eax
test edi, edi
jle 0x1008d464
mov ecx, esi
test cl, cl
cmp dword [ecx], ebx
jne 0x1008d45a
add eax, 1
add ecx, 4
cmp eax, edi
jl 0x1008d448
jmp 0x1008d464
push edx
pop edx
mov ebx, ebx
mov bh, bh
cmp eax, edi
jl 0x1008d46f
add esi, dword [esp + 0x34]
add edx, 1
cmp edx, ebp
jl 0x1008d440
xor esi, esi
test ebp, ebp
jle 0x1008d4ac
xor edx, edx
lea eax, [edi - 1]
test eax, eax
jl 0x1008d4a1
lea ecx, [edx + eax*4]
add ecx, dword [esp + 0x24]
test ebx, ebx
cmp dword [ecx], ebx
jne 0x1008d497
sub eax, 1
sub ecx, 4
test eax, eax
jge 0x1008d485
jmp 0x1008d4a1
push eax
pop eax
test ecx, ecx
mov ch, ch
test eax, eax
jge 0x1008d4ac
add edx, dword [esp + 0x34]
add esi, 1
cmp esi, ebp
jl 0x1008d477
lea esi, [ebp - 1]
test esi, esi
jl 0x1008d505
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 0x1008d4f3
mov ebp, dword [esp + 0x54]
mov ecx, edx
push edx
pop edx
cmp dword [ecx], ebp
jne 0x1008d4e2
add eax, 1
add ecx, 4
cmp eax, edi
jl 0x1008d4d0
jmp 0x1008d4ec
test eax, eax
test dh, dh
mov eax, eax
cmp eax, edi
jl 0x1008d4fe
mov ebp, dword [esp + 0x80]
sub esi, 1
add edx, ebx
test esi, esi
jge 0x1008d4c4
jmp 0x1008d505
mov ebp, dword [esp + 0x80]
lea esi, [ebp - 1]
test esi, esi
jl 0x1008d568
mov ebx, dword [esp + 0x34]
mov edx, esi
imul edx, ebx
neg ebx
lea eax, [edi - 1]
test eax, eax
jl 0x1008d556
mov ebp, dword [esp + 0x54]
lea ecx, [edx + eax*4]
add ecx, dword [esp + 0x24]
lea esp, [esp]
test bh, bh
cmp dword [ecx], ebp
jne 0x1008d542
sub eax, 1
sub ecx, 4
test eax, eax
jge 0x1008d530
jmp 0x1008d54f
xchg ebx, eax
xchg ebx, eax
test eax, 0x4e2a
test ch, ch
test eax, eax
jge 0x1008d561
mov ebp, dword [esp + 0x80]
sub esi, 1
add edx, ebx
test esi, esi
jge 0x1008d517
jmp 0x1008d568
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
test eax, 0x5670
mov eax, dword [esp + 0xa8]
xor ecx, ecx
cmp eax, ecx
jne 0x1008d848
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 0x24]
sub ecx, ebp
js 0x1008e067
mov edx, dword [esp + 0x60]
mov dword [esp + 0x28], edx
mov edi, edi
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x20]
sub ecx, dword [esp + 0x7c]
mov dword [esp + 0x1c], 0
js 0x1008d81a
mov edx, dword [esp + 0x28]
mov dword [esp + 0x2c], edx
mov edi, edi
mov dl, dl
xor eax, eax
mov dword [esp + 0x14], eax
mov ch, ch
mov ebp, dword [esp + 0x48]
mov al, al
cmp dword [esp + 0x80], eax
mov dword [esp + 0x3c], eax
jle 0x1008d6ab
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x30], eax
test eax, 0x6049
xor esi, esi
cmp dword [esp + 0x7c], esi
jle 0x1008d674
mov edi, dword [esp + 0x30]
sub ebp, 1
nop
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.10062b40
add esp, 0x14
test eax, eax
je 0x1008d656
add dword [esp + 0x14], 1
mov ah, ah
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jge 0x1008d6ab
add ecx, ebp
cmp ecx, eax
jl 0x1008d674
add esi, 1
add edi, 4
cmp esi, dword [esp + 0x7c]
jl 0x1008d621
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
cmp eax, ecx
jge 0x1008d6ab
lea edx, [eax + ebp]
cmp edx, ecx
jl 0x1008d6ab
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 0x1008d610
mov eax, dword [esp + 0x14]
imul eax, eax, 0x64
cdq
idiv dword [esp + 0x48]
mov bh, bh
cmp eax, dword [esp + 0x58]
jl 0x1008d7f7
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 ebp, ebp
test ebx, ebx
test ebx, 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], cl
test cl, cl
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.10119209
add esp, 0x18
test edi, edi
mov esi, dword [esp + 0x68]
mov edx, dword [esi + 0x10]
sub edx, dword [esi + 0x14]
je 0x1008d7c9
push 0x10182549
push 0x10182548
mov ecx, esi
call fcn.1000cfa0
test esi, esi
lea eax, [esp + 0xb4]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1008d7d3
sub eax, edx
lea eax, [esp + eax + 0xb4]
push eax
lea ecx, [esp + 0xb8]
push ecx
mov ecx, esi
call fcn.1000cfa0
test eax, eax
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 0x1008d5e1
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 0x1008d5c0
jmp 0x1008e067
cmp eax, 1
jne 0x1008dafd
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x24]
sub eax, ebp
mov dword [esp + 0x20], eax
js 0x1008e067
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
jmp 0x1008d880
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x20]
sub edx, dword [esp + 0x7c]
mov dword [esp + 0x1c], 0
js 0x1008dadd
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], eax
push edx
pop edx
test dl, dl
xor eax, eax
mov dword [esp + 0x14], eax
mov ebx, ebx
mov ebp, dword [esp + 0x48]
mov dl, dl
cmp dword [esp + 0x80], eax
mov dword [esp + 0x4c], eax
jle 0x1008d96c
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x28], ecx
test eax, 0x337f
xor esi, esi
cmp dword [esp + 0x7c], esi
jle 0x1008d935
mov edi, dword [esp + 0x28]
sub ebp, 1
mov 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.10062b40
add esp, 0x14
test eax, eax
je 0x1008d917
add dword [esp + 0x14], 1
test bh, bh
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jge 0x1008d96c
add ecx, ebp
cmp ecx, eax
jl 0x1008d935
add esi, 1
add edi, 4
cmp esi, dword [esp + 0x7c]
jl 0x1008d8e1
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
cmp eax, ecx
jge 0x1008d96c
lea edx, [eax + ebp]
cmp edx, ecx
jl 0x1008d96c
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 0x1008d8d0
mov eax, dword [esp + 0x14]
imul eax, eax, 0x64
cdq
idiv dword [esp + 0x48]
mov ebx, ebx
cmp eax, dword [esp + 0x58]
jl 0x1008daba
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 edx, edx
test edx, edx
nop
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
test 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 + 0xf0]
push eax
lea ecx, [esp + 0xc8]
push ecx
call fcn.10119209
add esp, 0x18
test eax, eax
mov esi, dword [esp + 0x68]
mov edx, dword [esi + 0x10]
sub edx, dword [esi + 0x14]
je 0x1008da8c
push 0x10182549
push 0x10182548
mov ecx, esi
call fcn.1000cfa0
test eax, 0x5036
lea eax, [esp + 0xb4]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1008da96
sub eax, edx
lea eax, [esp + eax + 0xb4]
push eax
lea ecx, [esp + 0xb8]
push ecx
mov ecx, esi
call fcn.1000cfa0
mov edx, edx
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 0x1008d8a1
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 0x1008d880
jmp 0x1008e067
cmp eax, 2
jne 0x1008ddba
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 0x24]
sub ecx, ebp
js 0x1008e067
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 0x1008dd8c
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]
nop
test dl, dl
xor eax, eax
mov dword [esp + 0x14], eax
mov dh, dh
mov ebp, dword [esp + 0x48]
test ch, ch
cmp dword [esp + 0x80], eax
mov dword [esp + 0x4c], eax
jle 0x1008dc1b
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x28], edx
mov edi, edi
mov ebx, ebx
xor esi, esi
cmp dword [esp + 0x7c], esi
jle 0x1008dbe5
mov edi, dword [esp + 0x28]
mov edi, edi
sub ebp, 1
mov eax, eax
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.10062b40
add esp, 0x14
test eax, eax
je 0x1008dbc6
add dword [esp + 0x14], 1
test ebx, ebx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jge 0x1008dc1b
lea edx, [ecx + ebp]
cmp edx, eax
jl 0x1008dbe5
add esi, 1
add edi, 4
cmp esi, dword [esp + 0x7c]
jl 0x1008db90
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
cmp eax, ecx
jge 0x1008dc1b
add eax, ebp
cmp eax, ecx
jl 0x1008dc1b
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 0x1008db80
mov eax, dword [esp + 0x14]
imul eax, eax, 0x64
cdq
idiv dword [esp + 0x48]
mov dh, dh
cmp eax, dword [esp + 0x58]
jl 0x1008dd74
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 cl, cl
test eax, 0x616f
test eax, 0x2567
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 dl, dl
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.10119209
add esp, 0x18
test ah, ah
mov esi, dword [esp + 0x68]
mov edx, dword [esi + 0x10]
sub edx, dword [esi + 0x14]
je 0x1008dd3f
push 0x10182549
push 0x10182548
mov ecx, esi
call fcn.1000cfa0
test bh, bh
lea eax, [esp + 0xb4]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1008dd50
sub eax, edx
lea eax, [esp + eax + 0xb4]
push eax
lea ecx, [esp + 0xb8]
push ecx
mov ecx, esi
call fcn.1000cfa0
mov edx, edx
mov eax, dword [esp + 0x1c]
sub dword [esp + 0x2c], 4
sub eax, 1
test eax, eax
mov dword [esp + 0x1c], eax
jge 0x1008db50
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 0x1008db21
jmp 0x1008e067
cmp eax, 3
jne 0x1008e067
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x24]
sub eax, dword [esp + 0x80]
mov dword [esp + 0x20], eax
js 0x1008e067
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 0x1008e04c
mov edx, dword [esp + 0x30]
lea eax, [edx + eax*4]
add eax, dword [esp + 0x60]
mov dword [esp + 0x2c], eax
push edx
pop edx
mov ah, ah
xor eax, eax
mov dword [esp + 0x14], eax
mov ch, ch
mov ebp, dword [esp + 0x48]
mov al, al
cmp dword [esp + 0x80], eax
mov dword [esp + 0x4c], eax
jle 0x1008dedf
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x28], ecx
test bl, bl
xor esi, esi
cmp dword [esp + 0x7c], esi
jle 0x1008dea8
mov edi, dword [esp + 0x28]
sub ebp, 1
mov ebp, ebp
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.10062b40
add esp, 0x14
test eax, eax
mov eax, dword [esp + 0x14]
je 0x1008de8d
add eax, 1
mov dword [esp + 0x14], eax
xchg ebx, eax
xchg ebx, eax
mov ecx, dword [esp + 0x40]
cmp eax, ecx
jge 0x1008dee3
lea edx, [eax + ebp]
cmp edx, ecx
jl 0x1008dea8
add esi, 1
add edi, 4
cmp esi, dword [esp + 0x7c]
jl 0x1008de51
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
cmp eax, ecx
jge 0x1008dee3
lea edx, [eax + ebp]
cmp edx, ecx
jl 0x1008dee3
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 0x1008de43
mov eax, dword [esp + 0x14]
imul eax, eax, 0x64
cdq
idiv dword [esp + 0x48]
test eax, 0x29c
cmp eax, dword [esp + 0x58]
jl 0x1008e034
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 al, al
test ebx, ebx
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
mov bl, bl
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.10119209
add esp, 0x18
test eax, 0x5faf
mov esi, dword [esp + 0x68]
mov edx, dword [esi + 0x10]
sub edx, dword [esi + 0x14]
je 0x1008e002
push 0x10182549
push 0x10182548
mov ecx, esi
call fcn.1000cfa0
test ecx, ecx
lea eax, [esp + 0xb4]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1008e010
sub eax, edx
lea eax, [esp + eax + 0xb4]
push eax
lea ecx, [esp + 0xb8]
push ecx
mov ecx, esi
call fcn.1000cfa0
mov dl, dl
mov eax, dword [esp + 0x1c]
sub dword [esp + 0x2c], 4
sub eax, 1
test eax, eax
mov dword [esp + 0x1c], eax
jge 0x1008de14
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 0x1008ddf0
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x10], 0
jne 0x1008e081
mov ecx, dword [esp + 0xa0]
cmp dword [ecx + 0x32f4], 0
jne 0x1008e093
mov edx, dword [esp + 0xac]
push edx
call fcn.10116c9f
add esp, 4
mov dh, dh
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x18], 0
je 0x1008e0ac
mov ecx, dword [esp + 0x24]
push ecx
call fcn.10116c9f
add esp, 4
push ecx
pop ecx
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 0x1008d180
pop esi
mov ecx, dword [esp + 0x100]
pop edi
pop ebp
pop ebx
xor ecx, esp
call fcn.1011717a
add esp, 0xf8
ret
cmp dword [ebp + 0x10], 0
jne 0x1008e0f3
cmp dword [ebx + 0x32f4], 0
jne 0x1008e0b7
mov edx, dword [esp + 0x24]
push edx
call fcn.10116c9f
add esp, 4
test bl, bl
jmp 0x1008e0b7
jmp fcn.10105c49