Function at 0x10189690
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov edx, dword [esp + 0x14]
sub esp, 0x88
push ebx
mov ebx, dword [esp + 0xa8]
push esi
mov esi, dword [esp + 0xa8]
cmp ebx, 2
jne 0x101896bf
cmp edx, 1
jge 0x101896bf
pop esi
xor eax, eax
pop ebx
add esp, 0x88
ret
push ebp
mov ebp, dword [esp + 0xa4]
mov eax, dword [ebp]
cmp eax, 0x7e000000
jbe 0x101896dd
pop ebp
pop esi
xor eax, eax
pop ebx
add esp, 0x88
ret
push edi
mov edi, dword [esp + 0x9c]
mov ecx, 9
add dword [edi + 0x40000], eax
cmp esi, 1
mov eax, 0xc
cmovge ecx, esi
cmp ecx, eax
cmovg ecx, eax
lea eax, [ecx + ecx*2]
movq xmm0, qword [eax*4 + 0x102ab400]
mov esi, dword [eax*4 + 0x102ab408]
xor eax, eax
cmp byte [edi + 0x4001a], al
movq qword [esp + 0x8c], xmm0
setne al
cmp dword [esp + 0x8c], 0
jne 0x1018b778
mov ecx, dword [ebp]
xor eax, eax
cmp dword [esp + 0x90], 0x80
mov dword [esp + 0x4c], 0
setg al
mov dword [esp + 0x3c], 0
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0xa0]
mov esi, eax
mov ebp, eax
mov dword [esp + 0x1c], esi
mov dword [esp + 0x38], ebp
mov dword [esp + 0x44], 0
lea ebx, [ecx + eax]
mov dword [esp + 0x68], 0
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x24], ebx
mov ebx, eax
add eax, edx
mov dword [esp + 0x18], ebx
mov edx, dword [esp + 0xa8]
cmp dword [esp + 0xb4], 2
mov dword [esp + 0x6c], 0
mov dword [edx], 0
lea edx, [eax - 5]
cmovne edx, eax
mov dword [esp + 0x50], edx
cmp ecx, 0xd
jl 0x1018b695
mov eax, dword [esp + 0x24]
add eax, 0xfffffff4
cmp esi, eax
ja 0x1018b695
nop word [eax + eax]
mov ebp, dword [edi + 0x40004]
mov edi, dword [edi + 0x4000c]
mov ebx, edi
mov eax, dword [esp + 0x9c]
sub ebx, ebp
add ebx, esi
mov dword [esp + 0x20], 3
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x10], edi
mov esi, dword [eax + 0x40010]
mov edx, esi
lea ecx, [ebx - 0xffff]
mov dword [esp + 0x60], esi
lea eax, [esi + 0x10000]
cmp eax, ebx
mov eax, dword [esp + 0x9c]
cmovbe edx, ecx
mov dword [esp + 0x30], edx
mov eax, dword [eax + 0x40008]
mov dword [esp + 0x48], eax
sub eax, esi
mov dword [esp + 0x70], eax
add eax, edi
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
xor eax, eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x28], ecx
mov esi, dword [eax + 0x40014]
cmp esi, ebx
jae 0x101898d1
mov edi, esi
sub edi, dword [esp + 0x10]
add edi, ebp
mov ebp, eax
imul eax, dword [edi], 0x9e3779b1
lea edi, [edi + 1]
mov ecx, esi
shr eax, 0x11
lea edx, [eax*4]
mov eax, 0xffff
sub ecx, dword [edx + ebp]
cmp ecx, 0xffff
cmova ecx, eax
movzx eax, si
mov word [ebp + eax*2 + 0x20000], cx
mov dword [edx + ebp], esi
inc esi
cmp esi, ebx
jb 0x10189881
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x9c]
mov esi, dword [esp + 0x1c]
mov dword [eax + 0x40014], ebx
mov ebx, dword [esp + 0x9c]
imul eax, dword [esi], 0x9e3779b1
shr eax, 0x11
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x34], ebx
cmp ebx, edx
jb 0x10189bf5
nop word [eax + eax]
mov eax, dword [esp + 0x64]
test eax, eax
jle 0x10189bf5
dec eax
mov dword [esp + 0x64], eax
cmp ebx, edi
jb 0x10189a62
mov edx, dword [esp + 0x20]
mov eax, ebx
sub eax, edi
lea edi, [eax + ebp]
mov ax, word [edx + esi - 1]
cmp ax, word [edi + edx - 1]
jne 0x101899b2
cmp dword [edi], ecx
jne 0x101899b2
lea ecx, [esi + 4]
mov esi, dword [esp + 0x24]
add esi, 0xfffffffb
lea edx, [edi + 4]
add esi, 0xfffffffd
mov ebp, ecx
cmp ecx, esi
jae 0x10189976
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x10189a48
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x10189976
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x10189a53
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x10189962
mov esi, dword [esp + 0x24]
add esi, 0xfffffffb
lea eax, [esi - 1]
cmp ecx, eax
jae 0x10189992
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x10189992
add ecx, 2
add edx, 2
cmp ecx, esi
jae 0x1018999d
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x1018999d
inc ecx
mov eax, ecx
sub eax, ebp
add eax, 4
cmp eax, dword [esp + 0x20]
jle 0x101899b2
mov dword [esp + 0x20], eax
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x10]
cmp dword [esp + 0x80], 0
je 0x10189bc7
mov ecx, dword [esp + 0x9c]
movzx eax, bx
cmp word [ecx + eax*2 + 0x20000], 1
jne 0x10189bc7
mov esi, dword [esp + 0x58]
lea ebp, [ebx - 1]
test esi, esi
jne 0x10189c10
mov ecx, dword [esp + 0x28]
xor ebx, ebx
mov eax, ecx
mov edx, ecx
shr eax, 0x18
cmp cl, al
movzx eax, cx
sete bl
shr edx, 0x10
xor ecx, ecx
cmp eax, edx
sete cl
test ecx, ebx
je 0x10189bbb
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
add eax, 0xfffffffb
push ebx
push eax
mov eax, dword [esp + 0x24]
add eax, 4
mov dword [esp + 0x60], 2
push eax
call fcn.1018e0c0
mov ebx, dword [esp + 0x40]
add esp, 0xc
add eax, 4
mov dword [esp + 0x14], eax
jmp 0x10189c15
bsf eax, eax
shr eax, 3
jmp 0x101899a1
bsf eax, eax
shr eax, 3
sub eax, ebp
add eax, ecx
jmp 0x101899a1
mov edx, ebx
lea eax, [edi - 4]
sub edx, dword [esp + 0x60]
add edx, dword [esp + 0x48]
cmp ebx, eax
ja 0x101899b6
cmp dword [edx], ecx
jne 0x101899b6
mov ecx, dword [esp + 0x24]
mov eax, edi
sub eax, ebx
add ecx, 0xfffffffb
add eax, esi
mov edi, ecx
cmp eax, ecx
lea ecx, [esi + 4]
mov ebx, ecx
cmovbe edi, eax
add edx, 4
lea esi, [edi - 3]
cmp ecx, esi
jae 0x10189aca
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x10189b84
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x10189aca
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x10189b8f
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x10189ab6
lea eax, [edi - 1]
cmp ecx, eax
jae 0x10189adf
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x10189adf
add ecx, 2
add edx, 2
cmp ecx, edi
jae 0x10189aea
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x10189aea
inc ecx
mov eax, ecx
sub eax, ebx
mov ecx, dword [esp + 0x1c]
lea ebx, [eax + 4]
add ecx, ebx
cmp ecx, edi
jne 0x10189b63
mov esi, dword [esp + 0x24]
add esi, 0xfffffffb
cmp edi, esi
jae 0x10189b63
add esi, 0xfffffffd
mov edx, ebp
mov edi, ecx
cmp ecx, esi
jae 0x10189b36
mov eax, dword [ebp]
xor eax, dword [ecx]
jne 0x10189b9e
add ecx, 4
lea edx, [ebp + 4]
cmp ecx, esi
jae 0x10189b36
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x10189ba6
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x10189b26
mov esi, dword [esp + 0x24]
add esi, 0xfffffffb
lea eax, [esi - 1]
cmp ecx, eax
jae 0x10189b52
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x10189b52
add ecx, 2
add edx, 2
cmp ecx, esi
jae 0x10189b5d
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x10189b5d
inc ecx
mov eax, ecx
sub eax, edi
add ebx, eax
mov edi, dword [esp + 0x10]
cmp ebx, dword [esp + 0x20]
jle 0x10189bb2
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x34]
mov eax, ebx
sub eax, edi
add eax, ebp
mov dword [esp + 0x4c], eax
jmp 0x101899b6
bsf eax, eax
shr eax, 3
jmp 0x10189aee
bsf eax, eax
shr eax, 3
sub eax, ebx
add eax, ecx
jmp 0x10189aee
bsf eax, eax
shr eax, 3
jmp 0x10189b61
bsf eax, eax
shr eax, 3
sub eax, edi
add eax, ecx
jmp 0x10189b61
mov ebx, dword [esp + 0x34]
jmp 0x101899b6
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x58], 1
mov ecx, dword [esp + 0x9c]
movzx eax, bx
movzx eax, word [ecx + eax*2 + 0x20000]
sub ebx, eax
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x34], ebx
cmp ebx, dword [esp + 0x30]
jae 0x10189900
mov edx, dword [esp + 0x20]
cmp edx, 4
jge 0x10189daa
mov ebx, dword [esp + 0x18]
inc esi
mov ebp, dword [esp + 0x38]
jmp 0x1018b48f
cmp esi, 2
jne 0x10189bc7
cmp ebp, dword [esp + 0x30]
jb 0x10189bc7
mov eax, edi
sub eax, ebp
dec eax
cmp eax, 3
jb 0x10189bc7
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x70]
sub eax, edi
cmp ebp, edi
cmovae esi, eax
mov eax, dword [esp + 0x28]
add esi, ebp
cmp dword [esi], eax
jne 0x10189bc7
mov ebx, dword [esp + 0x24]
add ebx, 0xfffffffb
cmp ebp, edi
push eax
cmovb ebx, dword [esp + 0x60]
lea eax, [esi + 4]
push ebx
push eax
call fcn.1018e0c0
mov edx, dword [esp + 0x1c]
add esp, 0xc
lea edi, [eax + 4]
cmp ebp, edx
jae 0x10189cb0
lea ecx, [edi + esi]
cmp ecx, ebx
jne 0x10189cb0
mov ebx, dword [esp + 0x28]
mov ecx, edi
and ecx, 3
mov eax, ebx
shl ecx, 3
test ecx, ecx
je 0x10189c80
rol eax, cl
push eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffffb
push eax
push dword [esp + 0x34]
call fcn.1018e0c0
add edi, eax
mov eax, dword [esp + 0x38]
cmp ebp, dword [esp + 0x1c]
push ebx
cmovb eax, dword [esp + 0x58]
push eax
push esi
call fcn.1018e190
add esp, 0x18
mov ebx, eax
jmp 0x10189d09
mov eax, dword [esp + 0x2c]
cmp ebp, edx
mov ebx, dword [esp + 0x28]
cmovb eax, dword [esp + 0x48]
push ebx
push eax
push esi
call fcn.1018e190
mov ebx, eax
add esp, 0xc
mov eax, dword [esp + 0x10]
cmp ebp, eax
jb 0x10189d09
sub esi, ebx
cmp esi, dword [esp + 0x2c]
jne 0x10189d09
cmp dword [esp + 0x60], eax
jae 0x10189d09
mov eax, dword [esp + 0x28]
mov ecx, ebx
neg ecx
and ecx, 3
shl ecx, 3
test ecx, ecx
je 0x10189cf6
rol eax, cl
push eax
push dword [esp + 0x4c]
push dword [esp + 0x64]
call fcn.1018e190
add esp, 0xc
add ebx, eax
mov esi, dword [esp + 0x14]
mov eax, ebp
sub eax, ebx
mov edx, edi
mov ebx, dword [esp + 0x30]
cmp eax, ebx
cmova ebx, eax
sub edx, ebx
add edx, ebp
cmp edx, esi
jb 0x10189d41
cmp edi, esi
ja 0x10189d41
sub edi, esi
lea ebx, [edi + ebp]
mov edi, dword [esp + 0x10]
mov eax, edi
sub eax, ebx
dec eax
cmp eax, 3
cmovb ebx, edi
jmp 0x10189bdb
mov edi, dword [esp + 0x10]
mov ecx, edi
sub ecx, ebx
lea eax, [ecx - 1]
cmp eax, 3
jae 0x10189d58
mov ebx, edi
jmp 0x10189bdb
cmp edx, esi
mov eax, esi
mov esi, dword [esp + 0x1c]
cmovb eax, edx
cmp dword [esp + 0x20], eax
jae 0x10189d8b
mov edx, dword [esp + 0x2c]
sub ecx, edx
add ecx, esi
cmp ecx, 0xffff
ja 0x10189bf5
mov dword [esp + 0x20], eax
mov eax, ebx
sub eax, edi
add eax, edx
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x9c]
movzx eax, bx
movzx eax, word [ecx + eax*2 + 0x20000]
cmp eax, ebx
ja 0x10189bf5
jmp 0x10189bd9
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x7c], esi
mov dword [esp + 0x88], eax
mov dword [esp + 0x70], edx
nop dword [eax]
mov ecx, dword [esp + 0x24]
lea eax, [edx + esi]
add ecx, 0xfffffff4
mov dword [esp + 0x84], eax
cmp eax, ecx
ja 0x1018b319
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x40], edx
lea edx, [eax - 2]
mov dword [esp + 0x30], edx
mov dword [esp + 0x58], 0
mov edi, dword [ecx + 0x4000c]
mov ebx, edi
mov esi, dword [ecx + 0x40010]
mov ebp, dword [ecx + 0x40004]
sub ebx, ebp
add ebx, edx
mov dword [esp + 0x5c], esi
mov dword [esp + 0x2c], ebp
lea eax, [esi + 0x10000]
mov dword [esp + 0x28], edi
cmp eax, ebx
mov eax, dword [esp + 0x9c]
lea ecx, [ebx - 0xffff]
cmovbe esi, ecx
mov ecx, dword [edx]
mov dword [esp + 0x48], esi
mov eax, dword [eax + 0x40008]
mov dword [esp + 0x34], eax
sub eax, dword [esp + 0x5c]
mov dword [esp + 0x54], eax
add eax, edi
mov dword [esp + 0x78], eax
mov eax, edx
sub eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x74], eax
xor eax, eax
mov esi, dword [edx + 0x40014]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x64], eax
cmp esi, ebx
jae 0x10189edc
mov edi, esi
sub edi, dword [esp + 0x28]
add edi, ebp
mov ebp, edx
nop word [eax + eax]
imul eax, dword [edi], 0x9e3779b1
lea edi, [edi + 1]
mov ecx, esi
shr eax, 0x11
lea edx, [eax*4]
mov eax, 0xffff
sub ecx, dword [edx + ebp]
cmp ecx, 0xffff
cmova ecx, eax
movzx eax, si
mov word [ebp + eax*2 + 0x20000], cx
mov dword [edx + ebp], esi
inc esi
cmp esi, ebx
jb 0x10189e90
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x2c]
mov edx, dword [esp + 0x9c]
mov esi, dword [esp + 0x30]
mov dword [edx + 0x40014], ebx
imul eax, dword [esi], 0x9e3779b1
shr eax, 0x11
mov ebx, dword [edx + eax*4]
mov dword [esp + 0x14], ebx
cmp ebx, dword [esp + 0x48]
jb 0x1018a3f6
mov eax, dword [esp + 0x74]
test eax, eax
jle 0x1018a3f6
dec eax
mov dword [esp + 0x74], eax
cmp ebx, edi
jb 0x1018a03c
mov esi, dword [esp + 0x1c]
sub ebx, edi
mov eax, dword [esp + 0x40]
add ebx, ebp
mov edx, dword [esp + 0x60]
mov ecx, ebx
sub ecx, edx
mov ax, word [eax + esi - 1]
mov esi, dword [esp + 0x40]
cmp ax, word [ecx + esi - 1]
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
jne 0x1018a1eb
cmp dword [ebx], ecx
jne 0x1018a1eb
xor edi, edi
test edx, edx
je 0x10189f84
mov edx, dword [esp + 0x1c]
mov eax, ebp
sub eax, ebx
sub edx, esi
cmp edx, eax
cmovle edx, eax
test edx, edx
jns 0x10189f84
lea ecx, [esi - 1]
mov esi, ebx
sub esi, dword [esp + 0x30]
mov al, byte [ecx]
cmp al, byte [esi + ecx]
jne 0x10189f80
dec edi
dec ecx
cmp edi, edx
jg 0x10189f73
mov esi, dword [esp + 0x30]
lea ecx, [esi + 4]
mov esi, dword [esp + 0x24]
add esi, 0xfffffffb
lea edx, [ebx + 4]
add esi, 0xfffffffd
mov ebp, ecx
cmp ecx, esi
jae 0x10189fc4
mov eax, dword [edx]
xor eax, dword [ecx]
jne 0x1018a028
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x10189fc4
nop
mov eax, dword [edx]
xor eax, dword [ecx]
jne 0x1018a030
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x10189fb0
mov esi, dword [esp + 0x24]
add esi, 0xfffffffb
lea eax, [esi - 1]
cmp ecx, eax
jae 0x10189fe0
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x10189fe0
add ecx, 2
add edx, 2
cmp ecx, esi
jae 0x10189feb
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x10189feb
inc ecx
mov eax, ecx
sub eax, ebp
mov esi, dword [esp + 0x30]
sub eax, edi
mov ecx, dword [esp + 0x10]
add eax, 4
mov edx, dword [esp + 0x9c]
cmp eax, dword [esp + 0x40]
jle 0x1018a01b
mov dword [esp + 0x40], eax
lea eax, [edi + ebx]
mov dword [esp + 0x44], eax
lea eax, [edi + esi]
mov dword [esp + 0x3c], eax
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x28]
jmp 0x1018a1fc
bsf eax, eax
shr eax, 3
jmp 0x10189fef
bsf eax, eax
shr eax, 3
sub eax, ebp
add eax, ecx
jmp 0x10189fef
mov ebp, ebx
lea eax, [edi - 4]
sub ebp, dword [esp + 0x5c]
add ebp, dword [esp + 0x34]
cmp ebx, eax
ja 0x1018a1f8
cmp dword [ebp], ecx
jne 0x1018a1f8
mov ecx, dword [esp + 0x24]
lea edx, [ebp + 4]
mov eax, edi
add ecx, 0xfffffffb
sub eax, ebx
mov edi, ecx
add eax, esi
cmp eax, ecx
lea ecx, [esi + 4]
mov ebx, ecx
cmovbe edi, eax
lea esi, [edi - 3]
cmp ecx, esi
jae 0x1018a0a5
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x1018a1b7
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x1018a0a5
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x1018a1c2
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x1018a091
lea eax, [edi - 1]
cmp ecx, eax
jae 0x1018a0ba
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x1018a0ba
add ecx, 2
add edx, 2
cmp ecx, edi
jae 0x1018a0c5
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x1018a0c5
inc ecx
mov eax, ecx
sub eax, ebx
mov ecx, dword [esp + 0x30]
lea ebx, [eax + 4]
add ecx, ebx
cmp ecx, edi
jne 0x1018a143
mov esi, dword [esp + 0x24]
add esi, 0xfffffffb
cmp edi, esi
jae 0x1018a143
mov edx, dword [esp + 0x2c]
add esi, 0xfffffffd
mov edi, ecx
cmp ecx, esi
jae 0x1018a116
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x1018a1d1
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x1018a116
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x1018a1dc
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x1018a102
mov esi, dword [esp + 0x24]
add esi, 0xfffffffb
lea eax, [esi - 1]
cmp ecx, eax
jae 0x1018a132
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x1018a132
add ecx, 2
add edx, 2
cmp ecx, esi
jae 0x1018a13d
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x1018a13d
inc ecx
mov eax, ecx
sub eax, edi
add ebx, eax
xor edx, edx
cmp dword [esp + 0x60], edx
je 0x1018a17d
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
sub eax, ebp
sub esi, edi
cmp esi, eax
cmovle esi, eax
test esi, esi
jns 0x1018a17d
lea ecx, [edi - 1]
sub ebp, edi
nop dword [eax]
mov al, byte [ecx]
cmp al, byte [ecx + ebp]
jne 0x1018a17d
dec edx
dec ecx
cmp edx, esi
jg 0x1018a170
mov edi, dword [esp + 0x28]
sub ebx, edx
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
cmp ebx, dword [esp + 0x40]
jle 0x1018a1eb
mov ebp, edx
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x14]
lea eax, [edx + esi]
mov edx, dword [esp + 0x9c]
sub ebp, edi
add ebp, ebx
mov dword [esp + 0x3c], eax
add ebp, dword [esp + 0x2c]
mov dword [esp + 0x44], ebp
jmp 0x1018a1fc
bsf eax, eax
shr eax, 3
jmp 0x1018a0c9
bsf eax, eax
shr eax, 3
sub eax, ebx
add eax, ecx
jmp 0x1018a0c9
bsf eax, eax
shr eax, 3
jmp 0x1018a141
bsf eax, eax
shr eax, 3
sub eax, edi
add eax, ecx
jmp 0x1018a141
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x9c]
jmp 0x1018a1fc
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0x80], 0
je 0x1018a28e
movzx eax, bx
cmp word [edx + eax*2 + 0x20000], 1
jne 0x1018a28e
mov eax, dword [esp + 0x58]
lea ebp, [ebx - 1]
test eax, eax
jne 0x1018a2a4
mov eax, ecx
xor ebx, ebx
shr eax, 0x18
mov edx, ecx
cmp cl, al
movzx eax, cx
sete bl
shr edx, 0x10
xor ecx, ecx
cmp eax, edx
sete cl
test ecx, ebx
je 0x1018a27b
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x10]
add eax, 0xfffffffb
push ebx
push eax
lea eax, [esi + 4]
mov dword [esp + 0x60], 2
push eax
call fcn.1018e0c0
mov ebx, dword [esp + 0x20]
add esp, 0xc
mov edx, dword [esp + 0x9c]
add eax, 4
mov dword [esp + 0x64], eax
jmp 0x1018a2a9
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x58], 1
movzx eax, bx
movzx eax, word [edx + eax*2 + 0x20000]
sub ebx, eax
mov dword [esp + 0x14], ebx
jmp 0x1018a3e0
cmp eax, 2
jne 0x1018a28e
cmp ebp, dword [esp + 0x48]
jb 0x1018a28e
mov eax, edi
sub eax, ebp
dec eax
cmp eax, 3
jb 0x1018a28e
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x54]
sub eax, edi
cmp ebp, edi
cmovae esi, eax
mov eax, dword [esp + 0x10]
add esi, ebp
cmp dword [esi], eax
jne 0x1018a28e
mov ebx, dword [esp + 0x24]
add ebx, 0xfffffffb
cmp ebp, edi
push eax
cmovb ebx, dword [esp + 0x7c]
lea eax, [esi + 4]
push ebx
push eax
call fcn.1018e0c0
mov edx, dword [esp + 0x34]
add esp, 0xc
lea edi, [eax + 4]
cmp ebp, edx
jae 0x1018a33a
lea ecx, [edi + esi]
cmp ecx, ebx
jne 0x1018a33a
mov ebx, dword [esp + 0x10]
mov ecx, edi
and ecx, 3
mov eax, ebx
shl ecx, 3
test ecx, ecx
je 0x1018a314
rol eax, cl
push eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffffb
push eax
push dword [esp + 0x34]
call fcn.1018e0c0
push ebx
push dword [esp + 0x44]
add edi, eax
push esi
call fcn.1018e190
add esp, 0x18
mov ebx, eax
jmp 0x1018a396
mov eax, dword [esp + 0x2c]
cmp ebp, edx
mov ebx, dword [esp + 0x10]
cmovb eax, dword [esp + 0x34]
push ebx
push eax
push esi
call fcn.1018e190
mov ebx, eax
add esp, 0xc
mov eax, dword [esp + 0x28]
cmp ebp, eax
jb 0x1018a396
sub esi, ebx
cmp esi, dword [esp + 0x2c]
jne 0x1018a396
cmp dword [esp + 0x5c], eax
jae 0x1018a396
mov eax, dword [esp + 0x10]
mov ecx, ebx
neg ecx
and ecx, 3
shl ecx, 3
test ecx, ecx
je 0x1018a380
rol eax, cl
push eax
push dword [esp + 0x38]
push dword [esp + 0x80]
call fcn.1018e190
add esp, 0xc
add ebx, eax
mov edx, dword [esp + 0x64]
mov eax, ebp
sub eax, ebx
mov ecx, edi
mov ebx, dword [esp + 0x48]
cmp eax, ebx
cmova ebx, eax
sub ecx, ebx
mov dword [esp + 0x14], ebx
add ecx, ebp
cmp ecx, edx
jb 0x1018a443
cmp edi, edx
ja 0x1018a443
sub edi, edx
lea ebx, [edi + ebp]
mov edi, dword [esp + 0x28]
mov eax, edi
sub eax, ebx
dec eax
cmp eax, 3
cmovb ebx, edi
mov dword [esp + 0x14], ebx
mov edx, dword [esp + 0x9c]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x30]
mov ebp, dword [esp + 0x2c]
cmp ebx, dword [esp + 0x48]
jae 0x10189f00
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x20]
cmp edi, edx
je 0x1018b319
mov ecx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x3c]
cmp ecx, ebp
jae 0x1018a4c6
mov edx, dword [esp + 0x70]
lea eax, [edx + ebp]
cmp ebx, eax
jae 0x1018a4c2
mov eax, dword [esp + 0x88]
mov ebp, ecx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x4c], eax
mov dword [esp + 0x20], edx
jmp 0x1018a4c6
mov edi, dword [esp + 0x28]
mov esi, edi
sub esi, ebx
lea eax, [esi - 1]
cmp eax, 3
jae 0x1018a45a
mov ebx, edi
jmp 0x1018a3d5
cmp dword [esp + 0x60], 0
jne 0x1018a3d9
cmp ecx, dword [esp + 0x64]
cmovb edx, ecx
cmp dword [esp + 0x40], edx
jae 0x1018a49d
mov ecx, dword [esp + 0x30]
mov eax, ecx
mov ebp, dword [esp + 0x2c]
sub eax, ebp
add eax, esi
cmp eax, 0xffff
ja 0x1018a3f6
mov eax, ebx
mov dword [esp + 0x40], edx
sub eax, edi
mov dword [esp + 0x3c], ecx
add eax, ebp
mov dword [esp + 0x44], eax
mov edx, dword [esp + 0x9c]
movzx eax, bx
movzx eax, word [edx + eax*2 + 0x20000]
cmp eax, ebx
ja 0x1018a3f6
sub ebx, eax
mov dword [esp + 0x14], ebx
jmp 0x1018a3e0
mov edx, dword [esp + 0x20]
mov eax, ebx
sub eax, ebp
cmp eax, 3
jge 0x1018a4e8
mov eax, dword [esp + 0x44]
mov edx, edi
mov esi, ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x4c], eax
jmp 0x10189dc0
mov esi, dword [esp + 0x44]
nop dword [eax]
mov eax, ebx
sub eax, ebp
cmp eax, 0x12
jge 0x1018a535
cmp dword [esp + 0x20], 0x12
lea ecx, [ebx - 4]
mov eax, 0x12
cmovg edx, eax
add ecx, edi
lea eax, [edx + ebp]
cmp eax, ecx
jbe 0x1018a51b
mov edx, edi
sub edx, ebp
add edx, 0xfffffffc
add edx, ebx
sub edx, ebx
add edx, ebp
test edx, edx
jle 0x1018a535
add ebx, edx
add esi, edx
sub edi, edx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], edi
mov ecx, dword [esp + 0x24]
lea eax, [edi + ebx]
add ecx, 0xfffffff4
cmp eax, ecx
ja 0x1018b033
mov ecx, dword [esp + 0x9c]
lea edx, [eax - 3]
mov dword [esp + 0x28], edi
mov dword [esp + 0x14], edx
mov dword [esp + 0x64], 0
mov edi, dword [ecx + 0x4000c]
mov ebx, edi
mov esi, dword [ecx + 0x40010]
mov ebp, dword [ecx + 0x40004]
sub ebx, ebp
add ebx, edx
mov dword [esp + 0x60], esi
mov dword [esp + 0x34], ebp
lea eax, [esi + 0x10000]
mov dword [esp + 0x30], edi
cmp eax, ebx
mov eax, dword [esp + 0x9c]
lea ecx, [ebx - 0xffff]
cmovbe esi, ecx
mov ecx, dword [edx]
mov dword [esp + 0x58], esi
mov eax, dword [eax + 0x40008]
mov dword [esp + 0x48], eax
sub eax, dword [esp + 0x60]
mov dword [esp + 0x54], eax
add eax, edi
mov dword [esp + 0x74], eax
mov eax, edx
sub eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x78], eax
xor eax, eax
mov esi, dword [edx + 0x40014]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x7c], eax
cmp esi, ebx
jae 0x1018a645
mov edi, esi
sub edi, dword [esp + 0x30]
add edi, ebp
nop dword [eax]
nop word [eax + eax]
imul eax, dword [edi], 0x9e3779b1
lea edi, [edi + 1]
mov ebp, dword [esp + 0x9c]
mov ecx, esi
shr eax, 0x11
sub ecx, dword [edx + eax*4]
lea edx, [edx + eax*4]
cmp ecx, 0xffff
mov eax, 0xffff
cmova ecx, eax
movzx eax, si
mov word [ebp + eax*2 + 0x20000], cx
mov dword [edx], esi
inc esi
mov edx, ebp
cmp esi, ebx
jb 0x1018a600
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov dword [edx + 0x40014], ebx
imul eax, dword [esi], 0x9e3779b1
shr eax, 0x11
mov ebx, dword [edx + eax*4]
mov dword [esp + 0x2c], ebx
cmp ebx, dword [esp + 0x58]
jb 0x1018b02b
nop dword [eax]
mov eax, dword [esp + 0x78]
test eax, eax
jle 0x1018ab70
dec eax
mov ebp, ebx
mov dword [esp + 0x78], eax
cmp ebx, edi
jb 0x1018a7af
mov esi, dword [esp + 0x3c]
sub ebp, edi
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x34]
add ebp, edx
mov ecx, ebp
sub ecx, dword [esp + 0x5c]
mov ax, word [esi + eax - 1]
mov esi, dword [esp + 0x28]
cmp ax, word [ecx + esi - 1]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
jne 0x1018a922
cmp dword [ebp], ecx
jne 0x1018a922
xor edi, edi
cmp dword [esp + 0x5c], edi
je 0x1018a701
mov eax, edx
mov edx, dword [esp + 0x3c]
sub eax, ebp
sub edx, esi
cmp edx, eax
cmovle edx, eax
test edx, edx
jns 0x1018a701
lea ecx, [esi - 1]
mov esi, ebp
sub esi, dword [esp + 0x14]
nop word [eax + eax]
mov al, byte [ecx]
cmp al, byte [esi + ecx]
jne 0x1018a6fd
dec edi
dec ecx
cmp edi, edx
jg 0x1018a6f0
mov esi, dword [esp + 0x14]
lea ecx, [esi + 4]
mov esi, dword [esp + 0x24]
add esi, 0xfffffffb
lea edx, [ebp + 4]
add esi, 0xfffffffd
mov ebx, ecx
cmp ecx, esi
jae 0x1018a737
mov eax, dword [edx]
xor eax, dword [ecx]
jne 0x1018a79b
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x1018a737
mov eax, dword [edx]
xor eax, dword [ecx]
jne 0x1018a7a3
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x1018a727
mov esi, dword [esp + 0x24]
add esi, 0xfffffffb
lea eax, [esi - 1]
cmp ecx, eax
jae 0x1018a753
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x1018a753
add ecx, 2
add edx, 2
cmp ecx, esi
jae 0x1018a75e
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x1018a75e
inc ecx
mov eax, ecx
sub eax, ebx
mov esi, dword [esp + 0x14]
sub eax, edi
mov ebx, dword [esp + 0x2c]
add eax, 4
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x9c]
cmp eax, dword [esp + 0x28]
jle 0x1018a792
mov dword [esp + 0x28], eax
lea eax, [edi + ebp]
mov dword [esp + 0x6c], eax
lea eax, [edi + esi]
mov dword [esp + 0x68], eax
mov edi, dword [esp + 0x30]
jmp 0x1018a929
bsf eax, eax
shr eax, 3
jmp 0x1018a762
bsf eax, eax
shr eax, 3
sub eax, ebx
add eax, ecx
jmp 0x1018a762
sub ebp, dword [esp + 0x60]
lea eax, [edi - 4]
add ebp, dword [esp + 0x48]
cmp ebx, eax
ja 0x1018a9e9
cmp dword [ebp], ecx
jne 0x1018a9e9
mov ecx, dword [esp + 0x24]
lea edx, [ebp + 4]
mov eax, edi
add ecx, 0xfffffffb
sub eax, ebx
mov edi, ecx
add eax, esi
cmp eax, ecx
lea ecx, [esi + 4]
mov ebx, ecx
cmovbe edi, eax
lea esi, [edi - 3]
cmp ecx, esi
jae 0x1018a816
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x1018a9ac
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x1018a816
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x1018a9b7
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x1018a802
lea eax, [edi - 1]
cmp ecx, eax
jae 0x1018a82b
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x1018a82b
add ecx, 2
add edx, 2
cmp ecx, edi
jae 0x1018a836
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x1018a836
inc ecx
mov eax, ecx
sub eax, ebx
mov ecx, dword [esp + 0x14]
lea ebx, [eax + 4]
lea eax, [ebx + ecx]
cmp eax, edi
jne 0x1018a8bb
mov esi, dword [esp + 0x24]
add esi, 0xfffffffb
cmp edi, esi
jae 0x1018a8bb
mov ecx, dword [esp + 0x34]
add esi, 0xfffffffd
mov edx, ecx
mov edi, eax
cmp eax, esi
jae 0x1018a88a
mov ecx, dword [ecx]
xor ecx, dword [eax]
jne 0x1018a9c6
add eax, 4
add edx, 4
cmp eax, esi
jae 0x1018a88a
mov ecx, dword [edx]
xor ecx, dword [eax]
jne 0x1018a9d1
add eax, 4
add edx, 4
cmp eax, esi
jb 0x1018a876
mov esi, dword [esp + 0x24]
add esi, 0xfffffffb
lea ecx, [esi - 1]
cmp eax, ecx
jae 0x1018a8a6
mov cx, word [edx]
cmp cx, word [eax]
jne 0x1018a8a6
add eax, 2
add edx, 2
cmp eax, esi
jae 0x1018a8b1
mov cl, byte [edx]
cmp cl, byte [eax]
jne 0x1018a8b1
inc eax
mov ecx, eax
sub ecx, edi
add ebx, ecx
mov ecx, dword [esp + 0x14]
xor edx, edx
cmp dword [esp + 0x5c], edx
je 0x1018a8ed
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x3c]
sub eax, ebp
sub esi, ecx
cmp esi, eax
cmovle esi, eax
test esi, esi
jns 0x1018a8ed
dec ecx
sub ebp, dword [esp + 0x14]
nop dword [eax]
mov al, byte [ecx]
cmp al, byte [ecx + ebp]
jne 0x1018a8ed
dec edx
dec ecx
cmp edx, esi
jg 0x1018a8e0
mov edi, dword [esp + 0x30]
sub ebx, edx
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
cmp ebx, dword [esp + 0x28]
jle 0x1018a9e0
mov eax, edx
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x2c]
sub eax, edi
add eax, ebx
add eax, dword [esp + 0x34]
mov dword [esp + 0x6c], eax
lea eax, [edx + esi]
mov dword [esp + 0x68], eax
mov edx, dword [esp + 0x9c]
cmp dword [esp + 0x80], 0
je 0x1018aa05
movzx eax, bx
cmp word [edx + eax*2 + 0x20000], 1
jne 0x1018aa05
mov eax, dword [esp + 0x64]
lea ebp, [ebx - 1]
test eax, eax
jne 0x1018aa1b
mov eax, ecx
xor ebx, ebx
shr eax, 0x18
mov edx, ecx
cmp cl, al
movzx eax, cx
sete bl
shr edx, 0x10
xor ecx, ecx
cmp eax, edx
sete cl
test ecx, ebx
je 0x1018a9f2
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x10]
add eax, 0xfffffffb
push ebx
push eax
lea eax, [esi + 4]
mov dword [esp + 0x6c], 2
push eax
call fcn.1018e0c0
mov ebx, dword [esp + 0x38]
add esp, 0xc
mov edx, dword [esp + 0x9c]
add eax, 4
mov dword [esp + 0x7c], eax
jmp 0x1018aa20
bsf eax, eax
shr eax, 3
jmp 0x1018a83a
bsf eax, eax
shr eax, 3
sub eax, ebx
add eax, ecx
jmp 0x1018a83a
bsf ecx, ecx
shr ecx, 3
jmp 0x1018a8b5
bsf ecx, ecx
shr ecx, 3
sub ecx, edi
add ecx, eax
jmp 0x1018a8b5
mov ebx, dword [esp + 0x2c]
jmp 0x1018a922
mov ecx, dword [esp + 0x10]
jmp 0x1018a929
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x64], 1
movzx eax, bx
movzx eax, word [edx + eax*2 + 0x20000]
sub ebx, eax
mov dword [esp + 0x2c], ebx
jmp 0x1018ab5e
cmp eax, 2
jne 0x1018aa05
cmp ebp, dword [esp + 0x58]
jb 0x1018aa05
mov eax, edi
sub eax, ebp
dec eax
cmp eax, 3
jb 0x1018aa05
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x54]
sub eax, edi
cmp ebp, edi
cmovae esi, eax
mov eax, dword [esp + 0x10]
add esi, ebp
cmp dword [esi], eax
jne 0x1018aa05
mov ebx, dword [esp + 0x24]
add ebx, 0xfffffffb
cmp ebp, edi
push eax
cmovb ebx, dword [esp + 0x78]
lea eax, [esi + 4]
push ebx
push eax
call fcn.1018e0c0
mov edx, dword [esp + 0x3c]
add esp, 0xc
lea edi, [eax + 4]
cmp ebp, edx
jae 0x1018aabb
lea ecx, [edi + esi]
cmp ecx, ebx
jne 0x1018aabb
mov ebx, dword [esp + 0x10]
mov ecx, edi
and ecx, 3
mov eax, ebx
shl ecx, 3
test ecx, ecx
je 0x1018aa8b
rol eax, cl
push eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffffb
push eax
push dword [esp + 0x3c]
call fcn.1018e0c0
add edi, eax
mov eax, dword [esp + 0x40]
cmp ebp, dword [esp + 0x3c]
push ebx
cmovb eax, dword [esp + 0x58]
push eax
push esi
call fcn.1018e190
add esp, 0x18
mov ebx, eax
jmp 0x1018ab14
mov eax, dword [esp + 0x34]
cmp ebp, edx
mov ebx, dword [esp + 0x10]
cmovb eax, dword [esp + 0x48]
push ebx
push eax
push esi
call fcn.1018e190
mov ebx, eax
add esp, 0xc
mov eax, dword [esp + 0x30]
cmp ebp, eax
jb 0x1018ab14
sub esi, ebx
cmp esi, dword [esp + 0x34]
jne 0x1018ab14
cmp dword [esp + 0x60], eax
jae 0x1018ab14
mov eax, dword [esp + 0x10]
mov ecx, ebx
neg ecx
and ecx, 3
shl ecx, 3
test ecx, ecx
je 0x1018ab01
rol eax, cl
push eax
push dword [esp + 0x4c]
push dword [esp + 0x7c]
call fcn.1018e190
add esp, 0xc
add ebx, eax
mov esi, dword [esp + 0x7c]
mov eax, ebp
sub eax, ebx
mov edx, edi
mov ebx, dword [esp + 0x58]
cmp eax, ebx
cmova ebx, eax
sub edx, ebx
mov dword [esp + 0x2c], ebx
add edx, ebp
cmp edx, esi
jb 0x1018abbf
cmp edi, esi
ja 0x1018abbf
sub edi, esi
lea ebx, [edi + ebp]
mov edi, dword [esp + 0x30]
mov eax, edi
sub eax, ebx
dec eax
cmp eax, 3
cmovb ebx, edi
mov dword [esp + 0x2c], ebx
mov edx, dword [esp + 0x9c]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
cmp ebx, dword [esp + 0x58]
jae 0x1018a670
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x40]
mov ebp, dword [esp + 0x1c]
cmp ecx, edi
je 0x1018b02f
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x68]
lea esi, [ebx + ebp]
lea eax, [esi + 3]
cmp edx, eax
jae 0x1018ac3a
cmp edx, esi
jae 0x1018ae3b
mov esi, dword [esp + 0x6c]
mov ebx, edx
mov edx, dword [esp + 0x20]
mov edi, ecx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], edi
jmp 0x1018a4f0
mov edi, dword [esp + 0x30]
mov ecx, edi
sub ecx, ebx
lea eax, [ecx - 1]
cmp eax, 3
jae 0x1018abd3
mov ebx, edi
jmp 0x1018ab53
cmp dword [esp + 0x5c], 0
jne 0x1018ab57
cmp edx, esi
mov eax, esi
cmovb eax, edx
cmp dword [esp + 0x28], eax
jae 0x1018ac15
mov esi, dword [esp + 0x34]
sub ecx, esi
mov edx, dword [esp + 0x14]
add ecx, edx
cmp ecx, 0xffff
ja 0x1018ab70
mov dword [esp + 0x28], eax
mov eax, ebx
sub eax, edi
mov dword [esp + 0x68], edx
add eax, esi
mov dword [esp + 0x6c], eax
mov edx, dword [esp + 0x9c]
movzx eax, bx
movzx eax, word [edx + eax*2 + 0x20000]
cmp eax, ebx
ja 0x1018ab70
sub ebx, eax
mov dword [esp + 0x2c], ebx
jmp 0x1018ab5e
mov edx, dword [esp + 0x3c]
cmp edx, esi
jae 0x1018ac93
mov eax, edx
sub eax, ebp
cmp eax, 0x12
jge 0x1018ac8f
cmp ebx, 0x12
mov eax, 0x12
cmovg ebx, eax
lea eax, [edx - 4]
add eax, edi
mov dword [esp + 0x20], ebx
lea ecx, [ebx + ebp]
cmp ecx, eax
jbe 0x1018ac73
mov ebx, edi
sub ebx, ebp
add ebx, 0xfffffffc
add ebx, edx
mov dword [esp + 0x20], ebx
mov eax, ebx
sub eax, edx
add eax, ebp
test eax, eax
jle 0x1018ac93
add dword [esp + 0x44], eax
add edx, eax
sub edi, eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], edi
jmp 0x1018ac93
mov dword [esp + 0x20], eax
mov ebx, dword [esp + 0x18]
mov esi, ebx
mov ecx, dword [esp + 0x1c]
mov edi, ebx
sub ecx, dword [esp + 0x38]
mov ebp, ebx
inc ebx
mov dword [esp + 0x14], esi
cmp dword [esp + 0xb4], 0
mov dword [esp + 0x18], ebx
mov dword [esp + 0x54], ecx
je 0x1018acd7
mov eax, 0x80808081
mul ecx
lea eax, [ecx + 8]
shr edx, 7
add eax, edx
add eax, ebx
cmp eax, dword [esp + 0x50]
ja 0x1018b4e8
cmp ecx, 0xf
jb 0x1018ad36
lea ebx, [ecx - 0xf]
mov byte [edi], 0xf0
cmp ebx, 0xff
jb 0x1018ad2b
mov eax, 0x80808081
mul ebx
mov eax, dword [esp + 0x18]
mov esi, edx
shr esi, 7
push esi
push 0xff
push eax
call fcn.1010f560
mov eax, dword [esp + 0x24]
add esp, 0xc
add eax, esi
mov dword [esp + 0x18], eax
sub ebx, 0xff
sub esi, 1
jne 0x1018ad13
mov ecx, dword [esp + 0x54]
mov byte [eax], bl
mov ebx, dword [esp + 0x18]
inc ebx
jmp 0x1018ad3d
mov eax, dword [esp + 0x18]
mov byte [eax], bl
mov ebx, eax
inc ebx
jmp 0x1018ad3d
mov al, cl
shl al, 4
mov byte [edi], al
mov edx, dword [esp + 0x38]
lea esi, [ecx + ebx]
sub edx, ebx
mov eax, dword [ebx + edx]
mov ecx, dword [ebx + edx + 4]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
add ebx, 8
cmp ebx, esi
jb 0x1018ad46
mov ecx, dword [esp + 0x20]
mov ebx, esi
mov esi, dword [esp + 0x1c]
add ecx, 0xfffffffc
mov eax, esi
sub eax, dword [esp + 0x4c]
mov word [ebx], ax
add ebx, 2
cmp dword [esp + 0xb4], 0
mov dword [esp + 0x18], ebx
je 0x1018ad99
mov eax, 0x80808081
mul ecx
shr edx, 7
lea eax, [edx + 6]
add eax, ebx
cmp eax, dword [esp + 0x50]
ja 0x1018b4e4
mov al, byte [ebp]
cmp ecx, 0xf
jb 0x1018adee
add al, 0xf
sub ecx, 0xf
mov byte [edi], al
cmp ecx, 0x1fe
jb 0x1018add3
mov eax, 0x80808081
mul ecx
shr edx, 8
nop word [eax + eax]
mov word [ebx], 0xffff
sub ecx, 0x1fe
add ebx, 2
sub edx, 1
jne 0x1018adc0
cmp ecx, 0xff
jb 0x1018ade5
sub ecx, 0xff
mov byte [ebx], 0xff
inc ebx
mov byte [ebx], cl
inc ebx
mov dword [esp + 0x18], ebx
jmp 0x1018adf2
add al, cl
mov byte [edi], al
add esi, dword [esp + 0x20]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
mov ebx, ecx
mov ebp, dword [esp + 0x3c]
mov edi, dword [esp + 0x28]
mov dword [esp + 0x38], esi
mov esi, eax
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], ecx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], edx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], edi
jmp 0x1018a4f0
mov edx, dword [esp + 0x3c]
cmp edx, esi
jae 0x1018ae72
mov eax, ebx
sub eax, edx
add eax, ebp
add dword [esp + 0x44], eax
sub edi, eax
add edx, eax
mov dword [esp + 0x40], edi
mov dword [esp + 0x3c], edx
cmp edi, 4
jge 0x1018ae72
mov eax, dword [esp + 0x68]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x18]
mov ebp, eax
mov ecx, dword [esp + 0x1c]
sub ecx, dword [esp + 0x38]
mov dword [esp + 0x14], eax
mov dword [esp + 0x70], eax
inc eax
cmp dword [esp + 0xb4], 0
mov dword [esp + 0x18], eax
mov dword [esp + 0x54], ecx
je 0x1018aebe
mov eax, 0x80808081
mul ecx
mov eax, dword [esp + 0x18]
shr edx, 7
add eax, 8
add edx, ecx
add eax, edx
cmp eax, dword [esp + 0x50]
ja 0x1018b4e4
mov eax, dword [esp + 0x18]
cmp ecx, 0xf
jb 0x1018af18
lea ebx, [ecx - 0xf]
mov byte [ebp], 0xf0
cmp ebx, 0xff
jb 0x1018af0f
mov eax, 0x80808081
mul ebx
mov eax, dword [esp + 0x18]
mov edi, edx
shr edi, 7
push edi
push 0xff
push eax
call fcn.1010f560
mov eax, dword [esp + 0x24]
add esp, 0xc
add eax, edi
nop word [eax + eax]
sub ebx, 0xff
sub edi, 1
jne 0x1018af00
mov ecx, dword [esp + 0x54]
mov byte [eax], bl
inc eax
mov dword [esp + 0x18], eax
jmp 0x1018af20
mov al, cl
shl al, 4
mov byte [ebp], al
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x38]
sub edx, ebx
lea edi, [ecx + ebx]
nop dword [eax]
mov eax, dword [ebx + edx]
mov ecx, dword [ebx + edx + 4]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
add ebx, 8
cmp ebx, edi
jb 0x1018af30
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x70]
add ecx, 0xfffffffc
mov word [edi], ax
add edi, 2
cmp dword [esp + 0xb4], 0
mov dword [esp + 0x18], edi
je 0x1018af83
mov eax, 0x80808081
mul ecx
shr edx, 7
lea eax, [edx + 6]
add eax, edi
cmp eax, dword [esp + 0x50]
ja 0x1018b4e4
mov al, byte [ebx]
cmp ecx, 0xf
jb 0x1018afde
add al, 0xf
sub ecx, 0xf
mov byte [ebp], al
cmp ecx, 0x1fe
jb 0x1018afc3
mov eax, 0x80808081
mul ecx
shr edx, 8
nop dword [eax]
nop dword [eax + eax]
mov word [edi], 0xffff
sub ecx, 0x1fe
add edi, 2
sub edx, 1
jne 0x1018afb0
cmp ecx, 0xff
jb 0x1018afd5
sub ecx, 0xff
mov byte [edi], 0xff
inc edi
mov byte [edi], cl
inc edi
mov dword [esp + 0x18], edi
jmp 0x1018afe3
add al, cl
mov byte [ebp], al
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x70], eax
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], ecx
jmp 0x10189dc0
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x3c]
mov eax, dword [esp + 0x20]
add eax, ebp
cmp ebx, eax
jae 0x1018b045
mov eax, ebx
sub eax, ebp
mov dword [esp + 0x20], eax
mov ebx, dword [esp + 0x18]
mov esi, ebx
mov ecx, dword [esp + 0x1c]
mov edi, ebx
sub ecx, dword [esp + 0x38]
mov ebp, ebx
inc ebx
mov dword [esp + 0x14], esi
cmp dword [esp + 0xb4], 0
mov dword [esp + 0x18], ebx
mov dword [esp + 0x54], ecx
je 0x1018b089
mov eax, 0x80808081
mul ecx
lea eax, [ecx + 8]
shr edx, 7
add eax, edx
add eax, ebx
cmp eax, dword [esp + 0x50]
ja 0x1018b4e8
cmp ecx, 0xf
jb 0x1018b0e8
lea ebx, [ecx - 0xf]
mov byte [edi], 0xf0
cmp ebx, 0xff
jb 0x1018b0dd
mov eax, 0x80808081
mul ebx
mov eax, dword [esp + 0x18]
mov esi, edx
shr esi, 7
push esi
push 0xff
push eax
call fcn.1010f560
mov eax, dword [esp + 0x24]
add esp, 0xc
add eax, esi
mov dword [esp + 0x18], eax
sub ebx, 0xff
sub esi, 1
jne 0x1018b0c5
mov ecx, dword [esp + 0x54]
mov byte [eax], bl
mov ebx, dword [esp + 0x18]
inc ebx
jmp 0x1018b0ef
mov eax, dword [esp + 0x18]
mov byte [eax], bl
mov ebx, eax
inc ebx
jmp 0x1018b0ef
mov al, cl
shl al, 4
mov byte [edi], al
mov edx, dword [esp + 0x38]
lea esi, [ecx + ebx]
sub edx, ebx
nop dword [eax + eax]
mov eax, dword [ebx + edx]
mov ecx, dword [ebx + edx + 4]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
add ebx, 8
cmp ebx, esi
jb 0x1018b100
mov ebx, dword [esp + 0x1c]
mov eax, ebx
sub eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x20]
mov word [esi], ax
add ecx, 0xfffffffc
add esi, 2
cmp dword [esp + 0xb4], 0
je 0x1018b14d
mov eax, 0x80808081
mul ecx
shr edx, 7
lea eax, [edx + 6]
add eax, esi
cmp eax, dword [esp + 0x50]
ja 0x1018b4de
mov al, byte [ebp]
cmp ecx, 0xf
jb 0x1018b19a
add al, 0xf
sub ecx, 0xf
mov byte [edi], al
cmp ecx, 0x1fe
jb 0x1018b183
mov eax, 0x80808081
mul ecx
shr edx, 8
nop
mov word [esi], 0xffff
sub ecx, 0x1fe
add esi, 2
sub edx, 1
jne 0x1018b170
cmp ecx, 0xff
jb 0x1018b195
sub ecx, 0xff
mov byte [esi], 0xff
inc esi
mov byte [esi], cl
inc esi
jmp 0x1018b19e
add cl, al
mov byte [edi], cl
add ebx, dword [esp + 0x20]
mov ebp, esi
mov edi, dword [esp + 0x3c]
mov edx, ebx
mov ecx, edi
mov dword [esp + 0x14], ebp
sub ecx, edx
mov dword [esp + 0x38], edx
cmp dword [esp + 0xb4], 0
lea esi, [ebp + 1]
mov ebx, edi
mov dword [esp + 0x54], ecx
mov dword [esp + 0x1c], ebx
je 0x1018b1ec
mov eax, 0x80808081
mul ecx
lea eax, [ecx + 8]
shr edx, 7
add eax, edx
add eax, esi
cmp eax, dword [esp + 0x50]
ja 0x1018b4ae
mov edx, dword [esp + 0x38]
cmp ecx, 0xf
jb 0x1018b23d
lea ebx, [ecx - 0xf]
mov byte [ebp], 0xf0
cmp ebx, 0xff
jb 0x1018b238
mov eax, 0x80808081
mul ebx
mov edi, edx
shr edi, 7
push edi
push 0xff
push esi
call fcn.1010f560
mov edx, dword [esp + 0x44]
add esp, 0xc
add esi, edi
mov dword [esp + 0x38], edx
sub ebx, 0xff
sub edi, 1
jne 0x1018b225
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x3c]
mov byte [esi], bl
inc esi
jmp 0x1018b249
mov al, cl
mov dword [esp + 0x38], edx
shl al, 4
mov byte [ebp], al
lea ebx, [ecx + esi]
sub edx, esi
nop
mov eax, dword [esi + edx]
mov ecx, dword [esi + edx + 4]
mov dword [esi], eax
mov dword [esi + 4], ecx
add esi, 8
cmp esi, ebx
jb 0x1018b250
mov esi, dword [esp + 0x40]
mov eax, edi
sub eax, dword [esp + 0x44]
mov word [ebx], ax
add ebx, 2
cmp dword [esp + 0xb4], 0
mov dword [esp + 0x18], ebx
lea ecx, [esi - 4]
je 0x1018b29d
mov eax, 0x80808081
mul ecx
shr edx, 7
lea eax, [edx + 6]
add eax, ebx
cmp eax, dword [esp + 0x50]
ja 0x1018b4ca
mov al, byte [ebp]
cmp ecx, 0xf
jb 0x1018b300
add al, 0xf
sub ecx, 0xf
mov byte [ebp], al
cmp ecx, 0x1fe
jb 0x1018b2d3
mov eax, 0x80808081
mul ecx
shr edx, 8
nop
mov word [ebx], 0xffff
sub ecx, 0x1fe
add ebx, 2
sub edx, 1
jne 0x1018b2c0
cmp ecx, 0xff
jb 0x1018b2e5
sub ecx, 0xff
mov byte [ebx], 0xff
inc ebx
lea eax, [esi + edi]
mov byte [ebx], cl
mov esi, eax
mov dword [esp + 0x1c], eax
inc ebx
mov ebp, esi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x38], ebp
jmp 0x1018b493
add al, cl
mov byte [ebp], al
lea eax, [esi + edi]
mov esi, eax
mov dword [esp + 0x1c], eax
mov ebp, esi
mov dword [esp + 0x38], ebp
jmp 0x1018b493
mov ebx, dword [esp + 0x18]
mov esi, ebx
mov ecx, dword [esp + 0x1c]
mov edi, ebx
sub ecx, dword [esp + 0x38]
mov ebp, ebx
inc ebx
mov dword [esp + 0x14], esi
cmp dword [esp + 0xb4], 0
mov dword [esp + 0x18], ebx
mov dword [esp + 0x54], ecx
je 0x1018b35d
mov eax, 0x80808081
mul ecx
lea eax, [ecx + 8]
shr edx, 7
add eax, edx
add eax, ebx
cmp eax, dword [esp + 0x50]
ja 0x1018b4e8
cmp ecx, 0xf
jb 0x1018b3c3
lea ebx, [ecx - 0xf]
mov byte [edi], 0xf0
cmp ebx, 0xff
jb 0x1018b3b8
mov eax, 0x80808081
mul ebx
mov eax, dword [esp + 0x18]
mov esi, edx
shr esi, 7
push esi
push 0xff
push eax
call fcn.1010f560
mov eax, dword [esp + 0x24]
add esp, 0xc
add eax, esi
mov dword [esp + 0x18], eax
nop dword [eax]
sub ebx, 0xff
sub esi, 1
jne 0x1018b3a0
mov ecx, dword [esp + 0x54]
mov byte [eax], bl
mov ebx, dword [esp + 0x18]
inc ebx
jmp 0x1018b3ca
mov eax, dword [esp + 0x18]
mov byte [eax], bl
mov ebx, eax
inc ebx
jmp 0x1018b3ca
mov al, cl
shl al, 4
mov byte [edi], al
mov edx, dword [esp + 0x38]
lea esi, [ecx + ebx]
sub edx, ebx
mov eax, dword [edx + ebx]
mov ecx, dword [edx + ebx + 4]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
add ebx, 8
cmp ebx, esi
jb 0x1018b3d3
mov eax, dword [esp + 0x1c]
mov ebx, esi
sub eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x20]
add ecx, 0xfffffffc
mov word [ebx], ax
add ebx, 2
cmp dword [esp + 0xb4], 0
mov dword [esp + 0x18], ebx
je 0x1018b424
mov eax, 0x80808081
mul ecx
shr edx, 7
lea eax, [edx + 6]
add eax, ebx
cmp eax, dword [esp + 0x50]
ja 0x1018b4e4
mov al, byte [ebp]
cmp ecx, 0xf
jb 0x1018b47e
add al, 0xf
sub ecx, 0xf
mov byte [edi], al
cmp ecx, 0x1fe
jb 0x1018b463
mov eax, 0x80808081
mul ecx
shr edx, 8
nop word [eax + eax]
mov word [ebx], 0xffff
sub ecx, 0x1fe
add ebx, 2
sub edx, 1
jne 0x1018b450
cmp ecx, 0xff
jb 0x1018b475
sub ecx, 0xff
mov byte [ebx], 0xff
inc ebx
mov byte [ebx], cl
inc ebx
mov dword [esp + 0x18], ebx
jmp 0x1018b482
add al, cl
mov byte [edi], al
mov esi, dword [esp + 0x84]
mov ebp, esi
mov dword [esp + 0x38], ebp
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x24]
add eax, 0xfffffff4
cmp esi, eax
ja 0x1018b695
mov edi, dword [esp + 0x9c]
jmp 0x101897e0
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x40]
mov edi, esi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x4c], eax
jmp 0x1018b4f0
mov eax, dword [esp + 0x44]
mov edi, esi
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x4c], eax
jmp 0x1018b4f0
mov esi, dword [esp + 0x14]
jmp 0x1018b4ec
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
cmp dword [esp + 0xb4], 2
jne 0x1018b68e
mov ebp, dword [esp + 0x38]
mov eax, 0x80808081
sub ebx, ebp
mov dword [esp + 0x18], esi
mov dword [esp + 0x84], ebx
lea ecx, [ebx + 0xf0]
mul ecx
mov ecx, dword [esp + 0x50]
shr edx, 7
add ecx, 0xfffffffd
inc edx
add edx, ebx
lea eax, [edx + esi]
cmp eax, ecx
ja 0x1018b65e
sub ecx, edx
sub ecx, esi
imul eax, ecx, 0xff
mov ecx, dword [esp + 0x50]
add eax, 0x12
cmp edi, eax
cmova edi, eax
add ecx, 2
mov eax, edi
mov dword [esp + 0x20], edi
sub eax, edx
sub eax, esi
add eax, ecx
cmp eax, 0xc
jl 0x1018b65e
mov ebp, dword [esp + 0x14]
inc esi
cmp ebx, 0xf
jb 0x1018b5bb
add ebx, 0xfffffff1
mov byte [ebp], 0xf0
cmp ebx, 0xff
jb 0x1018b5af
mov eax, 0x80808081
mul ebx
mov edi, edx
shr edi, 7
push edi
push 0xff
push esi
call fcn.1010f560
add esp, 0xc
add esi, edi
nop dword [eax + eax]
sub ebx, 0xff
sub edi, 1
jne 0x1018b5a0
mov edi, dword [esp + 0x20]
mov byte [esi], bl
inc esi
mov ebx, dword [esp + 0x84]
jmp 0x1018b5c3
mov al, bl
shl al, 4
mov byte [ebp], al
mov ebp, dword [esp + 0x38]
add ebx, esi
sub ebp, esi
nop dword [eax + eax]
mov eax, dword [esi + ebp]
mov ecx, dword [esi + ebp + 4]
mov dword [esi], eax
mov dword [esi + 4], ecx
add esi, 8
cmp esi, ebx
jb 0x1018b5d0
mov edx, dword [esp + 0x1c]
lea ecx, [edi - 4]
mov ebp, dword [esp + 0x14]
mov eax, edx
sub eax, dword [esp + 0x4c]
mov word [ebx], ax
add ebx, 2
mov dword [esp + 0x18], ebx
mov al, byte [ebp]
cmp ecx, 0xf
jb 0x1018b652
add al, 0xf
sub ecx, 0xf
mov byte [ebp], al
cmp ecx, 0x1fe
jb 0x1018b637
mov eax, 0x80808081
mul ecx
shr edx, 8
mov word [ebx], 0xffff
sub ecx, 0x1fe
add ebx, 2
sub edx, 1
jne 0x1018b620
mov edx, dword [esp + 0x1c]
cmp ecx, 0xff
jb 0x1018b649
sub ecx, 0xff
mov byte [ebx], 0xff
inc ebx
mov byte [ebx], cl
inc ebx
mov dword [esp + 0x18], ebx
jmp 0x1018b657
add al, cl
mov byte [ebp], al
lea ebp, [edi + edx]
mov dword [esp + 0x38], ebp
mov ebx, dword [esp + 0x24]
mov eax, 0x80808081
mov esi, dword [esp + 0xb4]
sub ebx, ebp
mov dword [esp + 0x24], ebx
lea ecx, [ebx + 0xf0]
mul ecx
mov ecx, dword [esp + 0x50]
shr edx, 7
add edx, ebx
mov ebx, dword [esp + 0x18]
add ecx, 5
jmp 0x1018b6c9
xor ecx, ecx
jmp 0x1018b7ac
mov esi, dword [esp + 0x24]
mov eax, 0x80808081
sub esi, ebp
mov dword [esp + 0x24], esi
lea ecx, [esi + 0xf0]
mul ecx
mov eax, dword [esp + 0x50]
shr edx, 7
add edx, esi
mov esi, dword [esp + 0xb4]
cmp esi, 2
lea ecx, [eax + 5]
cmovne ecx, eax
test esi, esi
je 0x1018b6eb
lea eax, [ebx + 1]
add eax, edx
cmp eax, ecx
jbe 0x1018b6eb
cmp esi, 1
je 0x1018b68e
sub ecx, ebx
dec ecx
lea eax, [ecx + 0xf1]
shr eax, 8
sub ecx, eax
mov dword [esp + 0x24], ecx
jmp 0x1018b6ef
mov ecx, dword [esp + 0x24]
add ebp, ecx
lea edi, [ebx + 1]
cmp ecx, 0xf
jb 0x1018b744
mov eax, dword [esp + 0x18]
lea ebx, [ecx - 0xf]
mov byte [eax], 0xf0
cmp ebx, 0xff
jb 0x1018b73f
mov eax, 0x80808081
mul ebx
mov esi, edx
shr esi, 7
push esi
push 0xff
push edi
call fcn.1010f560
add esp, 0xc
add edi, esi
nop dword [eax + eax]
sub ebx, 0xff
sub esi, 1
jne 0x1018b730
mov ecx, dword [esp + 0x24]
mov byte [edi], bl
inc edi
jmp 0x1018b74b
mov al, cl
shl al, 4
mov byte [ebx], al
push ecx
push dword [esp + 0x3c]
push edi
call fcn.1010efe0
mov eax, dword [esp + 0xb4]
add esp, 0xc
mov ecx, dword [esp + 0x24]
sub ebp, dword [esp + 0xa0]
sub ecx, dword [esp + 0xa4]
mov dword [eax], ebp
add ecx, edi
jmp 0x1018b7a8
push eax
push 0
xor eax, eax
cmp ecx, 0xc
sete al
push eax
push ebx
push esi
push dword [esp + 0xa4]
push edx
push ebp
push dword [esp + 0xc4]
push dword [esp + 0xc4]
push edi
call fcn.1018b7d0
add esp, 0x2c
mov ecx, eax
test ecx, ecx
jg 0x1018b7ba
mov eax, dword [esp + 0x9c]
mov byte [eax + 0x4001b], 1
pop edi
pop ebp
pop esi
mov eax, ecx
pop ebx
add esp, 0x88
ret