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

Disassembly:
sub esp, 0x98
push ebx
push ebp
push esi
mov esi, dword [esp + 0xc0]
xor ebx, ebx
push edi
push 0x10030
call fcn.10115a2f
mov ebp, dword [esp + 0xb4]
add esp, 4
mov dword [esp + 0x40], eax
mov edi, ebp
mov eax, dword [esp + 0xb8]
mov ecx, ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x70], edi
mov eax, dword [eax]
add eax, ebp
mov dword [esp + 0x7c], eax
lea edx, [eax - 0xc]
add eax, 0xfffffffb
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xbc]
add eax, dword [esp + 0xb4]
cmp dword [esp + 0x40], ebx
je 0x1018e0a7
mov ebx, dword [esp + 0xb8]
cmp dword [esp + 0xc8], 2
mov dword [ebx], 0
lea ebx, [eax - 5]
cmovne ebx, eax
cmp esi, 0x1000
mov eax, 0xfff
mov dword [esp + 0x84], ebx
cmovb eax, esi
mov dword [esp + 0x94], eax
cmp ebp, edx
ja 0x1018dfbf
mov ebx, dword [esp + 0xac]
lea eax, [ebx + 0x20000]
mov dword [esp + 0x88], eax
nop word [eax + eax]
mov ebp, dword [ebx + 0x40010]
mov eax, ecx
mov edx, dword [ebx + 0x40004]
sub eax, edi
mov edi, dword [ebx + 0x4000c]
mov esi, edi
mov dword [esp + 0x28], eax
sub esi, edx
mov eax, dword [ebx + 0x4001c]
add esi, ecx
mov dword [esp + 0x68], eax
mov ebx, ebp
lea eax, [ebp + 0x10000]
mov dword [esp + 0x48], esi
cmp eax, esi
mov dword [esp + 0x34], ebp
lea ecx, [esi - 0xffff]
mov dword [esp + 0x24], 0
mov esi, dword [esp + 0xac]
cmovbe ebx, ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x30], 0
mov dword [esp + 0x5c], 0
mov eax, dword [esi + 0x40008]
mov esi, dword [esi + 0x40014]
mov ecx, dword [ecx]
mov dword [esp + 0x74], eax
sub eax, ebp
mov ebp, dword [esp + 0x48]
mov dword [esp + 0x54], eax
add eax, edi
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x50], eax
xor eax, eax
mov dword [esp + 0x10], 3
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x58], ebx
mov dword [esp + 0x6c], 0
mov dword [esp + 0x14], ecx
mov dword [esp + 0x64], eax
mov dword [esp + 0x4c], eax
cmp esi, ebp
jae 0x1018b9b6
mov ebx, dword [esp + 0xac]
mov edi, esi
sub edi, dword [esp + 0x1c]
add edi, edx
imul eax, dword [edi], 0x9e3779b1
lea edi, [edi + 1]
mov ecx, esi
shr eax, 0x11
sub ecx, dword [ebx + eax*4]
lea edx, [ebx + eax*4]
cmp ecx, 0xffff
mov eax, 0xffff
cmova ecx, eax
movzx eax, si
mov word [ebx + eax*2 + 0x20000], cx
mov dword [edx], esi
inc esi
cmp esi, ebp
jb 0x1018b972
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x58]
mov eax, dword [esp + 0xac]
mov esi, dword [esp + 0x2c]
mov dword [eax + 0x40014], ebp
imul eax, dword [esi], 0x9e3779b1
mov ebp, dword [esp + 0xac]
shr eax, 0x11
shl eax, 2
mov dword [esp + 0x38], eax
mov ebp, dword [eax + ebp]
mov dword [esp + 0x44], ebp
cmp ebp, ebx
jb 0x1018c023
jmp 0x1018b9f8
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x50]
test eax, eax
jle 0x1018c023
xor ebx, ebx
dec eax
mov dword [esp + 0x50], eax
cmp dword [esp + 0xd4], ebx
je 0x1018ba23
mov eax, dword [esp + 0x48]
sub eax, ebp
cmp eax, 8
jb 0x1018bc24
cmp ebp, edi
jb 0x1018badd
mov eax, ebp
sub eax, edi
lea edi, [eax + edx]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov ax, word [eax + esi - 1]
cmp ax, word [edi + edx - 1]
jne 0x1018bc28
cmp dword [edi], ecx
jne 0x1018bc28
lea ecx, [esi + 4]
mov esi, dword [esp + 0x20]
add esi, 0xfffffffd
lea edx, [edi + 4]
mov ebx, ecx
cmp ecx, esi
jae 0x1018ba85
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x1018bac9
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x1018ba85
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x1018bad1
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x1018ba75
mov esi, dword [esp + 0x20]
lea eax, [esi - 1]
cmp ecx, eax
jae 0x1018ba9e
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x1018ba9e
add ecx, 2
add edx, 2
cmp ecx, esi
jae 0x1018baa9
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x1018baa9
inc ecx
mov eax, ecx
sub eax, ebx
mov edx, dword [esp + 0x10]
lea ebx, [eax + 4]
cmp ebx, edx
jle 0x1018bc2a
mov dword [esp + 0x10], ebx
mov dword [esp + 0x5c], edi
jmp 0x1018bc34
bsf eax, eax
shr eax, 3
jmp 0x1018baad
bsf eax, eax
shr eax, 3
sub eax, ebx
add eax, ecx
jmp 0x1018baad
mov edx, ebp
lea eax, [edi - 4]
sub edx, dword [esp + 0x34]
add edx, dword [esp + 0x74]
cmp ebp, eax
ja 0x1018bc24
cmp dword [edx], ecx
jne 0x1018bc24
sub edi, ebp
lea ecx, [esi + 4]
add edi, esi
mov ebx, ecx
cmp edi, dword [esp + 0x20]
cmova edi, dword [esp + 0x20]
add edx, 4
lea esi, [edi - 3]
cmp ecx, esi
jae 0x1018bb44
mov eax, dword [edx]
xor eax, dword [ecx]
jne 0x1018bbf6
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x1018bb44
nop word [eax + eax]
mov eax, dword [edx]
xor eax, dword [ecx]
jne 0x1018bc01
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x1018bb30
lea eax, [edi - 1]
cmp ecx, eax
jae 0x1018bb59
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x1018bb59
add ecx, 2
add edx, 2
cmp ecx, edi
jae 0x1018bb64
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x1018bb64
inc ecx
mov eax, ecx
sub eax, ebx
mov ecx, dword [esp + 0x2c]
lea ebx, [eax + 4]
add ecx, ebx
cmp ecx, edi
jne 0x1018bbda
mov esi, dword [esp + 0x20]
cmp edi, esi
jae 0x1018bbda
mov edx, dword [esp + 0x18]
add esi, 0xfffffffd
mov edi, ecx
cmp ecx, esi
jae 0x1018bbb0
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x1018bc10
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x1018bbb0
nop
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x1018bc18
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x1018bba0
mov esi, dword [esp + 0x20]
lea eax, [esi - 1]
cmp ecx, eax
jae 0x1018bbc9
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x1018bbc9
add ecx, 2
add edx, 2
cmp ecx, esi
jae 0x1018bbd4
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x1018bbd4
inc ecx
mov eax, ecx
sub eax, edi
add ebx, eax
mov edx, dword [esp + 0x10]
cmp ebx, edx
jle 0x1018bc2a
mov ecx, ebp
mov dword [esp + 0x10], ebx
sub ecx, dword [esp + 0x1c]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x5c], ecx
jmp 0x1018bc34
bsf eax, eax
shr eax, 3
jmp 0x1018bb68
bsf eax, eax
shr eax, 3
sub eax, ebx
add eax, ecx
jmp 0x1018bb68
bsf eax, eax
shr eax, 3
jmp 0x1018bbd8
bsf eax, eax
shr eax, 3
sub eax, edi
add eax, ecx
jmp 0x1018bbd8
mov edx, dword [esp + 0x10]
cmp ebx, edx
jne 0x1018bcb3
mov ebx, dword [esp + 0x10]
lea eax, [ebx + ebp]
cmp eax, dword [esp + 0x48]
ja 0x1018bcb3
mov ebp, 1
lea eax, [ebx - 3]
xor ebx, ebx
lea esi, [ebp + 0xf]
test eax, eax
jle 0x1018bcaf
nop
mov eax, dword [esp + 0x44]
mov edx, esi
mov ecx, dword [esp + 0x88]
add eax, ebx
movzx eax, ax
inc esi
sar edx, 4
movzx ecx, word [ecx + eax*2]
mov eax, 0x10
cmp ecx, ebp
mov edi, ecx
mov ecx, ebx
cmovbe ecx, dword [esp + 0x6c]
cmova esi, eax
mov eax, dword [esp + 0x10]
cmovbe edi, ebp
add ebx, edx
mov dword [esp + 0x6c], ecx
add eax, 0xfffffffd
mov ebp, edi
cmp ebx, eax
jl 0x1018bc50
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x6c], ecx
cmp edi, 1
jbe 0x1018bcb7
cmp edi, ebp
ja 0x1018c01f
sub ebp, edi
jmp 0x1018bd91
mov ebp, dword [esp + 0x44]
mov ecx, dword [esp + 0x6c]
mov esi, dword [esp + 0x88]
movzx eax, bp
cmp word [esi + eax*2], 1
jne 0x1018bd82
test ecx, ecx
jne 0x1018bd82
mov ebx, dword [esp + 0x64]
lea edi, [ebp - 1]
mov dword [esp + 0x78], edi
test ebx, ebx
jne 0x1018bdae
mov ecx, dword [esp + 0x14]
mov eax, ecx
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 0x1018bd7a
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x20]
add eax, 4
mov ebx, dword [esp + 0x14]
add edx, 0xfffffffd
mov dword [esp + 0x64], 2
mov esi, eax
cmp eax, edx
jae 0x1018bd35
mov ecx, dword [eax]
xor ecx, ebx
jne 0x1018bd60
add eax, 4
cmp eax, edx
jb 0x1018bd28
mov edx, dword [esp + 0x20]
mov ecx, ebx
cmp eax, edx
jae 0x1018bd4c
nop
cmp byte [eax], cl
jne 0x1018bd4c
inc eax
shr ecx, 8
cmp eax, edx
jb 0x1018bd40
mov ecx, eax
sub ecx, esi
mov esi, dword [esp + 0x88]
lea eax, [ecx + 4]
mov dword [esp + 0x4c], eax
jmp 0x1018bdb7
bsf ecx, ecx
shr ecx, 3
sub ecx, esi
mov esi, dword [esp + 0x88]
add ecx, eax
lea eax, [ecx + 4]
mov dword [esp + 0x4c], eax
jmp 0x1018bdb7
mov dword [esp + 0x64], 1
mov eax, dword [esp + 0x6c]
add eax, ebp
movzx eax, ax
movzx eax, word [esi + eax*2]
sub ebp, eax
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x58]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x44], ebp
cmp ebp, ebx
jae 0x1018b9f0
jmp 0x1018c023
cmp ebx, 2
jne 0x1018bd82
mov ebx, dword [esp + 0x14]
cmp edi, dword [esp + 0x58]
jb 0x1018bd82
mov ecx, dword [esp + 0x1c]
mov eax, ecx
sub eax, edi
dec eax
cmp eax, 3
jb 0x1018bd82
mov eax, dword [esp + 0x18]
sub eax, ecx
cmp edi, ecx
cmovb eax, dword [esp + 0x54]
add eax, edi
mov dword [esp + 0x44], eax
cmp dword [eax], ebx
jne 0x1018bd82
mov esi, dword [esp + 0x20]
cmp edi, ecx
mov ebp, eax
cmovb esi, dword [esp + 0x60]
lea eax, [ebp + 4]
lea edx, [esi - 3]
mov edi, eax
cmp eax, edx
jae 0x1018be11
nop dword [eax + eax]
mov ecx, dword [eax]
xor ecx, ebx
jne 0x1018be9c
add eax, 4
cmp eax, edx
jb 0x1018be00
mov ecx, ebx
cmp eax, esi
jae 0x1018be23
cmp byte [eax], cl
jne 0x1018be23
inc eax
shr ecx, 8
cmp eax, esi
jb 0x1018be17
mov ecx, eax
sub ecx, edi
mov edx, dword [esp + 0x1c]
lea ebx, [ecx + 4]
mov ecx, dword [esp + 0x78]
cmp ecx, edx
jae 0x1018bec1
lea eax, [ebx + ebp]
cmp eax, esi
jne 0x1018bec1
mov edx, dword [esp + 0x14]
mov ecx, ebx
and ecx, 3
shl ecx, 3
test ecx, ecx
je 0x1018be57
rol edx, cl
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov eax, edi
lea esi, [ecx - 3]
cmp edi, esi
jae 0x1018be79
mov ecx, dword [eax]
xor ecx, edx
jne 0x1018beab
add eax, 4
cmp eax, esi
jb 0x1018be68
mov ecx, dword [esp + 0x20]
cmp eax, ecx
jae 0x1018be8c
nop dword [eax]
cmp byte [eax], dl
jne 0x1018be8c
inc eax
shr edx, 8
cmp eax, ecx
jb 0x1018be80
mov edx, dword [esp + 0x1c]
mov ecx, eax
sub ecx, edi
add ebx, ecx
mov ecx, dword [esp + 0x78]
jmp 0x1018bec5
bsf ecx, ecx
shr ecx, 3
sub ecx, edi
add ecx, eax
jmp 0x1018be27
mov edx, dword [esp + 0x1c]
bsf ecx, ecx
shr ecx, 3
sub ecx, edi
add ecx, eax
add ebx, ecx
mov ecx, dword [esp + 0x78]
jmp 0x1018bec5
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
cmp ecx, edx
mov dword [esp + 0x98], esi
mov ecx, ebp
cmovb edi, dword [esp + 0x74]
lea edx, [edi + 4]
cmp ebp, edx
jb 0x1018beec
cmp dword [ecx - 4], esi
jne 0x1018beec
add ecx, 0xfffffffc
cmp ecx, edx
jae 0x1018bee0
cmp ecx, edi
jbe 0x1018bf11
lea esi, [esp + 0x9b]
sub esi, ecx
nop dword [eax]
mov al, byte [ecx - 1]
cmp al, byte [ecx + esi]
jne 0x1018bf0d
dec ecx
cmp ecx, edi
ja 0x1018bf00
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x78]
sub ebp, ecx
mov eax, dword [esp + 0x1c]
cmp edi, eax
jb 0x1018bf89
cmp ecx, dword [esp + 0x18]
jne 0x1018bf89
cmp dword [esp + 0x34], eax
jae 0x1018bf89
mov ecx, ebp
mov edx, esi
neg ecx
and ecx, 3
shl ecx, 3
test ecx, ecx
je 0x1018bf3d
rol edx, cl
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x9c], edx
lea esi, [eax + 4]
cmp ecx, esi
jb 0x1018bf5f
cmp dword [ecx - 4], edx
jne 0x1018bf5f
add ecx, 0xfffffffc
cmp ecx, esi
jae 0x1018bf53
cmp ecx, eax
jbe 0x1018bf81
mov edi, dword [esp + 0x74]
lea esi, [esp + 0x9f]
sub esi, ecx
mov al, byte [ecx - 1]
cmp al, byte [ecx + esi]
jne 0x1018bf7d
dec ecx
cmp ecx, edi
ja 0x1018bf70
mov edi, dword [esp + 0x78]
mov eax, dword [esp + 0x60]
sub eax, ecx
add ebp, eax
mov esi, dword [esp + 0x4c]
mov eax, edi
sub eax, ebp
mov edx, ebx
mov ebp, dword [esp + 0x58]
cmp eax, ebp
cmova ebp, eax
sub edx, ebp
add edx, edi
cmp edx, esi
jb 0x1018bfc2
cmp ebx, esi
ja 0x1018bfc2
sub ebx, esi
add ebx, edi
mov edi, dword [esp + 0x1c]
mov eax, edi
mov ebp, edi
sub eax, ebx
dec eax
cmp eax, 3
cmovae ebp, ebx
jmp 0x1018bd95
mov edi, dword [esp + 0x1c]
mov ecx, edi
sub ecx, ebp
lea eax, [ecx - 1]
cmp eax, 3
jae 0x1018bfd9
mov ebp, edi
jmp 0x1018bd95
cmp edx, esi
mov eax, esi
cmovb eax, edx
cmp dword [esp + 0x10], eax
jae 0x1018c006
mov edx, dword [esp + 0x18]
sub ecx, edx
add ecx, dword [esp + 0x2c]
cmp ecx, 0xffff
ja 0x1018c01f
mov ebx, ebp
mov dword [esp + 0x10], eax
sub ebx, edi
add ebx, edx
mov dword [esp + 0x5c], ebx
mov ecx, dword [esp + 0x88]
movzx eax, bp
movzx eax, word [ecx + eax*2]
cmp eax, ebp
ja 0x1018c01f
sub ebp, eax
jmp 0x1018bd95
mov ebx, dword [esp + 0x58]
cmp dword [esp + 0xd0], 1
jne 0x1018c179
mov edi, dword [esp + 0x50]
test edi, edi
jle 0x1018c179
mov eax, dword [esp + 0x48]
sub eax, ebx
cmp eax, 0xffff
jae 0x1018c179
mov eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x38]
mov edx, dword [eax + 0x40004]
mov ecx, dword [eax + 0x40000]
mov esi, dword [eax + 0x4000c]
sub ecx, edx
mov ebx, dword [eax + ebx]
add ecx, esi
mov eax, dword [esp + 0x48]
mov ebp, ebx
sub ebp, ecx
mov dword [esp + 0x64], esi
add ebp, dword [esp + 0x58]
sub eax, ebp
mov dword [esp + 0x54], edx
mov dword [esp + 0x4c], ecx
cmp eax, 0xffff
ja 0x1018c179
mov eax, edi
dec edi
mov dword [esp + 0x50], edi
test eax, eax
je 0x1018c179
mov eax, dword [esp + 0x14]
sub edx, esi
add edx, ebx
cmp dword [edx], eax
jne 0x1018c151
mov esi, ecx
mov ecx, dword [esp + 0x2c]
sub esi, ebx
add esi, ecx
cmp esi, dword [esp + 0x20]
cmova esi, dword [esp + 0x20]
add ecx, 4
add edx, 4
mov dword [esp + 0x34], ecx
lea edi, [esi - 3]
cmp ecx, edi
jae 0x1018c104
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x1018c1bc
add ecx, 4
add edx, 4
cmp ecx, edi
jae 0x1018c104
nop dword [eax + eax]
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x1018c1c7
add ecx, 4
add edx, 4
cmp ecx, edi
jb 0x1018c0f0
lea eax, [esi - 1]
cmp ecx, eax
jae 0x1018c119
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x1018c119
add ecx, 2
add edx, 2
cmp ecx, esi
jae 0x1018c124
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x1018c124
inc ecx
mov eax, ecx
sub eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x4c]
add eax, 4
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x50]
cmp eax, dword [esp + 0x10]
jle 0x1018c151
mov dword [esp + 0x10], eax
mov eax, ebp
sub eax, dword [esp + 0x1c]
add eax, dword [esp + 0x18]
mov dword [esp + 0x5c], eax
mov edx, dword [esp + 0x68]
movzx eax, bx
movzx eax, word [edx + eax*2 + 0x20000]
mov edx, dword [esp + 0x54]
sub ebx, eax
sub ebp, eax
mov eax, dword [esp + 0x48]
sub eax, ebp
cmp eax, 0xffff
jbe 0x1018c094
mov edx, dword [esp + 0x10]
cmp edx, 3
jle 0x1018c1d8
cmp dword [esp + 0xd4], 0
je 0x1018c1a6
xor ecx, ecx
cmp edx, 0x24
setle cl
xor eax, eax
cmp edx, 0x12
setg al
test eax, ecx
mov eax, 0x12
cmovne edx, eax
mov ecx, dword [esp + 0x2c]
mov edi, edx
mov eax, ecx
mov dword [esp + 0x30], edi
sub eax, dword [esp + 0x5c]
mov dword [esp + 0x24], eax
jmp 0x1018c1e2
bsf eax, eax
shr eax, 3
jmp 0x1018c12a
bsf eax, eax
shr eax, 3
sub eax, dword [esp + 0x34]
add eax, ecx
jmp 0x1018c12a
mov eax, dword [esp + 0x24]
mov edi, eax
mov ecx, dword [esp + 0x2c]
test edi, edi
jne 0x1018c1f0
inc ecx
mov dword [esp + 0x2c], ecx
jmp 0x1018ddc5
cmp edi, dword [esp + 0x94]
jbe 0x1018c38f
mov esi, dword [esp + 0xc8]
mov edi, ecx
mov ecx, dword [esp + 0x28]
sub edi, eax
mov eax, dword [esp + 0x3c]
mov ebp, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x54], eax
inc eax
mov dword [esp + 0x3c], eax
test esi, esi
je 0x1018c249
mov eax, 0x80808081
mul ecx
mov eax, dword [esp + 0x3c]
shr edx, 7
add eax, 8
add edx, ecx
add eax, edx
cmp eax, dword [esp + 0x84]
ja 0x1018ddeb
mov eax, dword [esp + 0x3c]
cmp ecx, 0xf
jb 0x1018c29a
lea ebx, [ecx - 0xf]
mov byte [ebp], 0xf0
cmp ebx, 0xff
jb 0x1018c291
mov eax, 0x80808081
mul ebx
mov eax, dword [esp + 0x3c]
mov esi, edx
shr esi, 7
push esi
push 0xff
push eax
call fcn.1010f560
mov eax, dword [esp + 0x48]
add esp, 0xc
add eax, esi
sub ebx, 0xff
sub esi, 1
jne 0x1018c282
mov ecx, dword [esp + 0x28]
mov byte [eax], bl
inc eax
mov dword [esp + 0x3c], eax
jmp 0x1018c2a2
mov al, cl
shl al, 4
mov byte [ebp], al
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x70]
sub edx, ebx
lea esi, [ecx + ebx]
nop
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 0x1018c2b0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
sub eax, edi
mov ebx, dword [esp + 0x54]
add ecx, 0xfffffffc
mov word [esi], ax
add esi, 2
cmp dword [esp + 0xc8], 0
mov dword [esp + 0x3c], esi
je 0x1018c304
mov eax, 0x80808081
mul ecx
shr edx, 7
lea eax, [edx + 6]
add eax, esi
cmp eax, dword [esp + 0x84]
ja 0x1018dde4
mov al, byte [ebx]
cmp ecx, 0xf
jb 0x1018c373
add al, 0xf
sub ecx, 0xf
mov byte [ebp], al
cmp ecx, 0x1fe
jb 0x1018c343
mov eax, 0x80808081
mul ecx
shr edx, 8
nop word [eax + eax]
mov word [esi], 0xffff
sub ecx, 0x1fe
add esi, 2
sub edx, 1
jne 0x1018c330
cmp ecx, 0xff
jb 0x1018c355
sub ecx, 0xff
mov byte [esi], 0xff
inc esi
mov byte [esi], cl
inc esi
mov ecx, dword [esp + 0x2c]
add ecx, dword [esp + 0x30]
mov edi, ecx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x70], edi
jmp 0x1018ddc9
add al, cl
mov ecx, dword [esp + 0x2c]
add ecx, dword [esp + 0x30]
mov edi, ecx
mov byte [ebp], al
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x70], edi
jmp 0x1018ddc9
mov ebx, dword [esp + 0x28]
mov eax, ebx
cmp ebx, 0xf
jl 0x1018c3b3
lea ecx, [ebx - 0xf]
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
inc eax
add eax, edx
add eax, ebx
mov ecx, dword [esp + 0x40]
lea esi, [ebx + 1]
mov dword [ecx], eax
mov eax, esi
mov dword [ecx + 8], 1
mov dword [ecx + 4], 0
mov dword [ecx + 0xc], ebx
cmp esi, 0xf
jl 0x1018c3f3
lea ecx, [ebx - 0xe]
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [esp + 0x40]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, 2
add eax, edx
add eax, ebx
mov dword [ecx + 0x1c], esi
lea esi, [ebx + 2]
mov dword [ecx + 0x10], eax
mov eax, esi
mov dword [ecx + 0x18], 1
mov dword [ecx + 0x14], 0
cmp esi, 0xf
jl 0x1018c430
lea ecx, [ebx - 0xd]
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [esp + 0x40]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, 3
add eax, edx
add eax, ebx
lea ebp, [ebx + 3]
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x28], 1
mov eax, ebp
mov dword [ecx + 0x24], 0
mov dword [ecx + 0x2c], esi
cmp ebp, 0xf
jl 0x1018c46d
lea ecx, [ebx - 0xc]
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [esp + 0x40]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, 4
add eax, edx
add eax, ebx
mov esi, 4
mov dword [ecx + 0x38], 1
mov dword [ecx + 0x34], 0
mov dword [ecx + 0x3c], ebp
mov dword [ecx + 0x30], eax
cmp edi, esi
jl 0x1018c550
cmp ebx, 0xf
jl 0x1018c502
mov edi, dword [esp + 0x40]
lea ecx, [ebx - 0xf]
mov eax, 0x80808081
imul ecx
mov eax, dword [esp + 0x28]
add edx, ecx
mov ecx, dword [esp + 0x24]
sar edx, 7
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
mov edx, dword [esp + 0x30]
add ebp, ebx
add edi, 0x44
nop
lea ebx, [ebp + 4]
cmp esi, 0x13
jl 0x1018c4ed
lea ecx, [esi - 0x13]
mov eax, 0x80808081
imul ecx
inc ebx
add edx, ecx
mov ecx, dword [esp + 0x24]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x30]
add ebx, eax
mov eax, dword [esp + 0x28]
mov dword [edi + 4], esi
inc esi
mov dword [edi], ecx
mov dword [edi + 8], eax
mov dword [edi - 4], ebx
add edi, 0x10
cmp esi, edx
jle 0x1018c4c0
jmp 0x1018c550
mov eax, dword [esp + 0x28]
lea edi, [ecx + 0x44]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x30]
mov ebx, ebp
cmp esi, 0x13
jl 0x1018c53d
lea ecx, [esi - 0x13]
mov eax, 0x80808081
imul ecx
inc ebx
add edx, ecx
mov ecx, dword [esp + 0x24]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x30]
add ebx, eax
mov eax, dword [esp + 0x28]
mov dword [edi + 4], esi
inc esi
mov dword [edi], ecx
mov dword [edi + 8], eax
mov dword [edi - 4], ebx
add edi, 0x10
cmp esi, edx
jle 0x1018c511
mov ebp, dword [esp + 0x30]
mov ebx, 1
mov esi, dword [esp + 0x40]
mov ecx, ebp
add ecx, ecx
mov dword [esp + 0x44], ebx
lea edx, [ebp + 1]
shl edx, 4
add edx, esi
mov dword [edx + 8], 1
mov dword [edx + 4], 0
mov dword [edx + 0xc], 1
mov eax, dword [esi + ecx*8]
inc eax
mov dword [edx + 0x18], 1
mov dword [edx], eax
mov dword [edx + 0x14], 0
mov dword [edx + 0x1c], 2
mov eax, dword [esi + ecx*8]
add eax, 2
mov dword [edx + 0x28], 1
mov dword [edx + 0x10], eax
lea eax, [ebp + 3]
add eax, eax
mov dword [edx + 0x24], 0
mov dword [edx + 0x2c], 3
mov ecx, dword [esi + ecx*8]
add ecx, 3
mov dword [esi + eax*8], ecx
cmp ebp, ebx
jle 0x1018db70
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x7c]
add edi, ebx
add eax, 0xfffffff4
mov dword [esp + 0x18], edi
cmp edi, eax
ja 0x1018db70
mov eax, ebx
add eax, eax
cmp dword [esp + 0xcc], 0
mov ecx, dword [esi + eax*8 + 0x10]
mov eax, dword [esi + eax*8]
je 0x1018c616
cmp ecx, eax
jg 0x1018c61e
lea ecx, [ebx + 4]
add eax, 3
add ecx, ecx
cmp dword [esi + ecx*8], eax
jl 0x1018db63
jmp 0x1018c61e
cmp ecx, eax
jle 0x1018db63
cmp dword [esp + 0xcc], 0
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x74], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x60], 0
mov edx, dword [ecx + 0x40010]
mov eax, dword [ecx + 0x4001c]
mov ebp, dword [ecx + 0x40004]
mov esi, dword [ecx + 0x4000c]
mov dword [esp + 0x78], eax
lea ecx, [edx + 0x10000]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x1c], esi
mov dword [esp + 0x58], edx
je 0x1018cfb2
mov ebx, esi
mov dword [esp + 0x10], 3
sub ebx, ebp
mov dword [esp + 0x48], 0
add ebx, edi
cmp ecx, ebx
mov dword [esp + 0x5c], ebx
mov ecx, dword [esp + 0x18]
lea eax, [ebx - 0xffff]
mov ebx, esi
cmovbe edx, eax
mov eax, dword [esp + 0xac]
mov ecx, dword [ecx]
sub ebx, ebp
add ebx, dword [esp + 0x18]
mov dword [esp + 0x28], edx
mov edi, dword [eax + 0x40008]
mov eax, edi
sub eax, dword [esp + 0x58]
add eax, esi
mov dword [esp + 0x50], edi
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x68], eax
xor eax, eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x38], ecx
mov esi, dword [eax + 0x40014]
cmp esi, ebx
jae 0x1018c753
mov edi, esi
sub edi, dword [esp + 0x1c]
add edi, ebp
mov ebp, dword [esp + 0x88]
nop word [eax + eax]
imul eax, dword [edi], 0x9e3779b1
lea edi, [edi + 1]
mov ecx, dword [esp + 0xac]
shr eax, 0x11
lea edx, [ecx + eax*4]
mov ecx, esi
sub ecx, dword [edx]
mov eax, 0xffff
cmp ecx, 0xffff
cmova ecx, eax
movzx eax, si
mov word [ebp + eax*2], cx
mov dword [edx], esi
inc esi
cmp esi, ebx
jb 0x1018c710
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x50]
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0xac]
mov dword [esi + 0x40014], ebx
mov ebx, dword [esp + 0x18]
imul eax, dword [ebx], 0x9e3779b1
shr eax, 0x11
mov ebp, dword [esi + eax*4]
mov dword [esp + 0x24], ebp
cmp ebp, edx
jb 0x1018cb85
mov eax, edi
sub eax, dword [esp + 0x58]
mov dword [esp + 0x54], eax
nop word [eax + eax]
mov eax, dword [esp + 0x68]
test eax, eax
jle 0x1018cb81
xor ebx, ebx
dec eax
mov dword [esp + 0x68], eax
cmp dword [esp + 0xd4], ebx
je 0x1018c7bb
mov eax, dword [esp + 0x5c]
sub eax, ebp
cmp eax, 8
jb 0x1018c9c6
mov esi, dword [esp + 0x1c]
cmp ebp, esi
jb 0x1018c87e
mov eax, dword [esp + 0x10]
mov edi, ebp
mov edx, dword [esp + 0x10]
sub edi, esi
mov esi, dword [esp + 0x18]
add edi, dword [esp + 0x14]
mov ax, word [eax + esi - 1]
cmp ax, word [edx + edi - 1]
jne 0x1018c9d0
cmp dword [edi], ecx
jne 0x1018c9d0
lea ecx, [esi + 4]
mov esi, dword [esp + 0x20]
add esi, 0xfffffffd
lea edx, [edi + 4]
mov ebx, ecx
cmp ecx, esi
jae 0x1018c826
mov eax, dword [edx]
xor eax, dword [ecx]
jne 0x1018c86a
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x1018c826
mov eax, dword [edx]
xor eax, dword [ecx]
jne 0x1018c872
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x1018c816
mov esi, dword [esp + 0x20]
lea eax, [esi - 1]
cmp ecx, eax
jae 0x1018c83f
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x1018c83f
add ecx, 2
add edx, 2
cmp ecx, esi
jae 0x1018c84a
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x1018c84a
inc ecx
mov eax, ecx
sub eax, ebx
mov edx, dword [esp + 0x10]
lea ebx, [eax + 4]
cmp ebx, edx
jle 0x1018c9d0
mov dword [esp + 0x10], ebx
mov dword [esp + 0x60], edi
jmp 0x1018c9e3
bsf eax, eax
shr eax, 3
jmp 0x1018c84e
bsf eax, eax
shr eax, 3
sub eax, ebx
add eax, ecx
jmp 0x1018c84e
mov edx, ebp
lea eax, [esi - 4]
sub edx, dword [esp + 0x58]
add edx, edi
cmp ebp, eax
ja 0x1018c9cc
cmp dword [edx], ecx
jne 0x1018c9cc
mov eax, dword [esp + 0x18]
mov edi, esi
sub edi, ebp
add edi, eax
cmp edi, dword [esp + 0x20]
lea ecx, [eax + 4]
cmova edi, dword [esp + 0x20]
mov ebx, ecx
add edx, 4
lea esi, [edi - 3]
cmp ecx, esi
jae 0x1018c8e4
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x1018c998
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x1018c8e4
nop
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x1018c9a3
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x1018c8d0
lea eax, [edi - 1]
cmp ecx, eax
jae 0x1018c8f9
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x1018c8f9
add ecx, 2
add edx, 2
cmp ecx, edi
jae 0x1018c904
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x1018c904
inc ecx
mov eax, ecx
sub eax, ebx
mov ecx, dword [esp + 0x18]
lea ebx, [eax + 4]
add ecx, ebx
cmp ecx, edi
jne 0x1018c97c
cmp edi, dword [esp + 0x20]
jae 0x1018c97c
mov esi, dword [esp + 0x7c]
mov edi, ecx
mov eax, dword [esp + 0x14]
add esi, 0xfffffff8
mov edx, eax
cmp ecx, esi
jae 0x1018c952
mov eax, dword [eax]
xor eax, dword [ecx]
jne 0x1018c9b2
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x1018c952
mov eax, dword [edx]
xor eax, dword [ecx]
jne 0x1018c9ba
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x1018c942
mov esi, dword [esp + 0x20]
lea eax, [esi - 1]
cmp ecx, eax
jae 0x1018c96b
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x1018c96b
add ecx, 2
add edx, 2
cmp ecx, esi
jae 0x1018c976
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x1018c976
inc ecx
mov eax, ecx
sub eax, edi
add ebx, eax
mov edx, dword [esp + 0x10]
cmp ebx, edx
jle 0x1018c9d0
mov ecx, dword [esp + 0x14]
sub ecx, dword [esp + 0x1c]
add ecx, ebp
mov dword [esp + 0x10], ebx
mov dword [esp + 0x60], ecx
jmp 0x1018c9e3
bsf eax, eax
shr eax, 3
jmp 0x1018c908
bsf eax, eax
shr eax, 3
sub eax, ebx
add eax, ecx
jmp 0x1018c908
bsf eax, eax
shr eax, 3
jmp 0x1018c97a
bsf eax, eax
shr eax, 3
sub eax, edi
add eax, ecx
jmp 0x1018c97a
mov edx, dword [esp + 0x10]
jmp 0x1018c9d7
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0xac]
cmp ebx, edx
jne 0x1018cb2a
mov ebx, dword [esp + 0x10]
lea eax, [ebx + ebp]
cmp eax, dword [esp + 0x5c]
ja 0x1018ca6f
mov ebp, 1
lea eax, [ebx - 3]
xor ebx, ebx
lea esi, [ebp + 0xf]
test eax, eax
jle 0x1018ca6b
mov eax, dword [esp + 0x24]
mov edx, esi
mov ecx, dword [esp + 0xac]
add eax, ebx
movzx eax, ax
inc esi
sar edx, 4
movzx ecx, word [ecx + eax*2 + 0x20000]
mov eax, 0x10
cmp ecx, ebp
mov edi, ecx
mov ecx, ebx
cmovbe ecx, dword [esp + 0x48]
cmova esi, eax
mov eax, dword [esp + 0x10]
cmovbe edi, ebp
add ebx, edx
mov dword [esp + 0x48], ecx
add eax, 0xfffffffd
mov ebp, edi
cmp ebx, eax
jl 0x1018ca01
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
cmp edi, 1
jbe 0x1018ca73
cmp edi, ebp
ja 0x1018cb81
mov esi, dword [esp + 0xac]
sub ebp, edi
jmp 0x1018cb6b
mov ebp, dword [esp + 0x24]
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0xac]
movzx eax, bp
cmp word [esi + eax*2 + 0x20000], 1
jne 0x1018cb58
test ecx, ecx
jne 0x1018cb58
mov ebx, dword [esp + 0x4c]
lea edi, [ebp - 1]
mov dword [esp + 0x24], edi
test ebx, ebx
jne 0x1018ccfe
mov ecx, dword [esp + 0x38]
mov eax, ecx
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 0x1018cb50
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
add eax, 4
mov ebx, dword [esp + 0x38]
add edx, 0xfffffffd
mov dword [esp + 0x4c], 2
mov esi, eax
cmp eax, edx
jae 0x1018cafd
nop dword [eax]
mov ecx, dword [eax]
xor ecx, ebx
jne 0x1018cb33
add eax, 4
cmp eax, edx
jb 0x1018caf0
mov edx, dword [esp + 0x20]
mov ecx, ebx
cmp eax, edx
jae 0x1018cb13
cmp byte [eax], cl
jne 0x1018cb13
inc eax
shr ecx, 8
cmp eax, edx
jb 0x1018cb07
mov ecx, eax
sub ecx, esi
mov esi, dword [esp + 0xac]
lea eax, [ecx + 4]
mov dword [esp + 0x34], eax
jmp 0x1018cd0b
mov ecx, dword [esp + 0x48]
jmp 0x1018ca7a
bsf ecx, ecx
shr ecx, 3
sub ecx, esi
mov esi, dword [esp + 0xac]
add ecx, eax
lea eax, [ecx + 4]
mov dword [esp + 0x34], eax
jmp 0x1018cd0b
mov dword [esp + 0x4c], 1
mov eax, dword [esp + 0x48]
add eax, ebp
movzx eax, ax
movzx eax, word [esi + eax*2 + 0x20000]
sub ebp, eax
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x50]
mov dword [esp + 0x24], ebp
cmp ebp, dword [esp + 0x28]
jae 0x1018c790
mov ebx, dword [esp + 0x18]
cmp dword [esp + 0xd0], 1
jne 0x1018ccf2
mov esi, dword [esp + 0x68]
test esi, esi
jle 0x1018ccf2
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x28]
sub eax, edi
cmp eax, 0xffff
jae 0x1018ccf2
mov eax, dword [esp + 0x78]
mov ebp, dword [eax + 0x4000c]
mov edx, dword [eax + 0x40004]
mov ecx, dword [eax + 0x40000]
imul eax, dword [ebx], 0x9e3779b1
sub ecx, edx
mov ebx, dword [esp + 0x78]
add ecx, ebp
sub edi, ecx
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x80], edx
mov dword [esp + 0x34], ecx
shr eax, 0x11
mov ebx, dword [ebx + eax*4]
add edi, ebx
mov eax, dword [esp + 0x5c]
sub eax, edi
mov dword [esp + 0x28], edi
cmp eax, 0xffff
ja 0x1018ccf2
mov eax, esi
dec esi
mov dword [esp + 0x68], esi
test eax, eax
je 0x1018ccf2
mov eax, dword [esp + 0x38]
sub edx, ebp
add edx, ebx
cmp dword [edx], eax
jne 0x1018ccc3
mov eax, dword [esp + 0x18]
mov esi, eax
sub esi, ebx
add esi, ecx
cmp esi, dword [esp + 0x20]
cmova esi, dword [esp + 0x20]
add eax, 4
add edx, 4
mov ebp, eax
lea edi, [esi - 3]
cmp eax, edi
jae 0x1018cc74
mov ecx, dword [eax]
xor ecx, dword [edx]
jne 0x1018cf98
add eax, 4
add edx, 4
cmp eax, edi
jae 0x1018cc74
nop dword [eax + eax]
mov ecx, dword [eax]
xor ecx, dword [edx]
jne 0x1018cfa3
add eax, 4
add edx, 4
cmp eax, edi
jb 0x1018cc60
lea ecx, [esi - 1]
cmp eax, ecx
jae 0x1018cc89
mov cx, word [edx]
cmp cx, word [eax]
jne 0x1018cc89
add eax, 2
add edx, 2
cmp eax, esi
jae 0x1018cc94
mov cl, byte [edx]
cmp cl, byte [eax]
jne 0x1018cc94
inc eax
mov ecx, eax
sub ecx, ebp
mov edi, dword [esp + 0x28]
add ecx, 4
mov ebp, dword [esp + 0x4c]
mov esi, dword [esp + 0x68]
cmp ecx, dword [esp + 0x10]
jle 0x1018ccbf
mov eax, edi
mov dword [esp + 0x10], ecx
sub eax, dword [esp + 0x1c]
add eax, dword [esp + 0x14]
mov dword [esp + 0x60], eax
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x78]
movzx eax, bx
movzx eax, word [edx + eax*2 + 0x20000]
mov edx, dword [esp + 0x80]
sub edi, eax
sub ebx, eax
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0x5c]
sub eax, edi
cmp eax, 0xffff
jbe 0x1018cc06
mov edx, dword [esp + 0x10]
cmp edx, 3
jmp 0x1018d747
cmp ebx, 2
jne 0x1018cb58
mov ebx, dword [esp + 0x38]
cmp edi, dword [esp + 0x28]
jb 0x1018cb58
mov ecx, dword [esp + 0x1c]
mov eax, ecx
sub eax, edi
dec eax
cmp eax, 3
jb 0x1018cb58
mov eax, dword [esp + 0x14]
sub eax, ecx
cmp edi, ecx
cmovb eax, dword [esp + 0x54]
add eax, edi
mov dword [esp + 0x80], eax
cmp dword [eax], ebx
jne 0x1018cb58
mov esi, dword [esp + 0x20]
cmp edi, ecx
mov ebp, eax
cmovb esi, dword [esp + 0x64]
lea eax, [ebp + 4]
lea edx, [esi - 3]
mov edi, eax
cmp eax, edx
jae 0x1018cd71
nop
mov ecx, dword [eax]
xor ecx, ebx
jne 0x1018cdfc
add eax, 4
cmp eax, edx
jb 0x1018cd60
mov ecx, ebx
cmp eax, esi
jae 0x1018cd83
cmp byte [eax], cl
jne 0x1018cd83
inc eax
shr ecx, 8
cmp eax, esi
jb 0x1018cd77
mov ecx, eax
sub ecx, edi
mov edx, dword [esp + 0x1c]
lea ebx, [ecx + 4]
mov ecx, dword [esp + 0x24]
cmp ecx, edx
jae 0x1018ce21
lea eax, [ebx + ebp]
cmp eax, esi
jne 0x1018ce21
mov edx, dword [esp + 0x38]
mov ecx, ebx
and ecx, 3
shl ecx, 3
test ecx, ecx
je 0x1018cdb7
rol edx, cl
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x14]
mov eax, edi
lea esi, [ecx - 3]
cmp edi, esi
jae 0x1018cdd9
mov ecx, dword [eax]
xor ecx, edx
jne 0x1018ce0b
add eax, 4
cmp eax, esi
jb 0x1018cdc8
mov ecx, dword [esp + 0x20]
cmp eax, ecx
jae 0x1018cdec
nop dword [eax]
cmp byte [eax], dl
jne 0x1018cdec
inc eax
shr edx, 8
cmp eax, ecx
jb 0x1018cde0
mov edx, dword [esp + 0x1c]
mov ecx, eax
sub ecx, edi
add ebx, ecx
mov ecx, dword [esp + 0x24]
jmp 0x1018ce25
bsf ecx, ecx
shr ecx, 3
sub ecx, edi
add ecx, eax
jmp 0x1018cd87
mov edx, dword [esp + 0x1c]
bsf ecx, ecx
shr ecx, 3
sub ecx, edi
add ecx, eax
add ebx, ecx
mov ecx, dword [esp + 0x24]
jmp 0x1018ce25
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x38]
cmp ecx, edx
mov dword [esp + 0xa0], esi
mov ecx, ebp
cmovb edi, dword [esp + 0x50]
lea edx, [edi + 4]
cmp ebp, edx
jb 0x1018ce4c
cmp dword [ecx - 4], esi
jne 0x1018ce4c
add ecx, 0xfffffffc
cmp ecx, edx
jae 0x1018ce40
cmp ecx, edi
jbe 0x1018ce71
lea esi, [esp + 0xa3]
sub esi, ecx
nop dword [eax]
mov al, byte [ecx - 1]
cmp al, byte [esi + ecx]
jne 0x1018ce6d
dec ecx
cmp ecx, edi
ja 0x1018ce60
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x24]
sub ebp, ecx
mov eax, dword [esp + 0x1c]
cmp edi, eax
jb 0x1018cee9
cmp ecx, dword [esp + 0x14]
jne 0x1018cee9
cmp dword [esp + 0x58], eax
jae 0x1018cee9
mov ecx, ebp
mov edx, esi
neg ecx
and ecx, 3
shl ecx, 3
test ecx, ecx
je 0x1018ce9d
rol edx, cl
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0xa4], edx
lea esi, [eax + 4]
cmp ecx, esi
jb 0x1018cebf
cmp dword [ecx - 4], edx
jne 0x1018cebf
add ecx, 0xfffffffc
cmp ecx, esi
jae 0x1018ceb3
cmp ecx, eax
jbe 0x1018cee1
mov edi, dword [esp + 0x50]
lea esi, [esp + 0xa7]
sub esi, ecx
mov al, byte [ecx - 1]
cmp al, byte [esi + ecx]
jne 0x1018cedd
dec ecx
cmp ecx, edi
ja 0x1018ced0
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x64]
sub eax, ecx
add ebp, eax
mov edx, dword [esp + 0x34]
mov eax, edi
sub eax, ebp
mov ecx, ebx
mov ebp, dword [esp + 0x28]
cmp eax, ebp
cmova ebp, eax
sub ecx, ebp
add ecx, edi
cmp ecx, edx
jb 0x1018cf29
cmp ebx, edx
ja 0x1018cf29
mov eax, dword [esp + 0x1c]
sub ebx, edx
mov ebp, dword [esp + 0x1c]
add ebx, edi
mov esi, dword [esp + 0xac]
sub eax, ebx
dec eax
cmp eax, 3
cmovae ebp, ebx
jmp 0x1018cb6b
mov ebx, dword [esp + 0x1c]
mov esi, ebx
sub esi, ebp
lea eax, [esi - 1]
cmp eax, 3
jae 0x1018cf47
mov esi, dword [esp + 0xac]
mov ebp, ebx
jmp 0x1018cb6b
cmp ecx, dword [esp + 0x34]
cmovb edx, ecx
cmp dword [esp + 0x10], edx
jae 0x1018cf79
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
sub eax, ecx
add eax, esi
cmp eax, 0xffff
ja 0x1018cb81
mov eax, ecx
mov dword [esp + 0x10], edx
sub eax, ebx
add eax, ebp
mov dword [esp + 0x60], eax
mov esi, dword [esp + 0xac]
movzx eax, bp
movzx eax, word [esi + eax*2 + 0x20000]
cmp eax, ebp
ja 0x1018cb81
jmp 0x1018cb69
bsf ecx, ecx
shr ecx, 3
jmp 0x1018cc98
bsf ecx, ecx
shr ecx, 3
sub ecx, ebp
add ecx, eax
jmp 0x1018cc98
mov edx, dword [esp + 0x30]
sub edx, ebx
mov dword [esp + 0x24], 0
mov ebx, dword [esp + 0x58]
mov ebp, edx
mov dword [esp + 0x8c], edx
mov edx, esi
sub edx, dword [esp + 0x14]
add edx, edi
mov dword [esp + 0x28], ebp
cmp ecx, edx
mov dword [esp + 0x50], edx
mov ecx, dword [edi]
mov dword [esp + 0x38], ecx
lea eax, [edx - 0xffff]
cmovbe ebx, eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x48], ebx
mov eax, dword [eax + 0x40008]
mov dword [esp + 0x68], eax
sub eax, dword [esp + 0x58]
add eax, esi
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x5c], eax
xor eax, eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xac]
mov esi, dword [eax + 0x40014]
cmp esi, edx
jae 0x1018d095
mov edi, esi
mov ebx, edx
sub edi, dword [esp + 0x1c]
mov ebp, eax
add edi, dword [esp + 0x14]
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 0x1018d041
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x48]
mov edx, dword [esp + 0x50]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0xac]
mov esi, dword [esp + 0xac]
mov dword [eax + 0x40014], edx
imul eax, dword [edi], 0x9e3779b1
shr eax, 0x11
mov edi, dword [esi + eax*4]
mov dword [esp + 0x10], edi
cmp edi, ebx
jb 0x1018d5dd
mov eax, dword [esp + 0x68]
mov edx, eax
sub edx, dword [esp + 0x58]
mov dword [esp + 0x80], edx
jmp 0x1018d0d8
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x5c]
test edx, edx
jle 0x1018d5d9
xor ebx, ebx
dec edx
mov dword [esp + 0x5c], edx
cmp dword [esp + 0xd4], ebx
je 0x1018d107
mov eax, dword [esp + 0x50]
sub eax, edi
cmp eax, 8
jb 0x1018d311
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x1c]
cmp edi, esi
jb 0x1018d1c2
sub edi, esi
mov esi, dword [esp + 0x18]
add edi, dword [esp + 0x14]
mov ax, word [esi + ebp - 1]
cmp ax, word [edi + ebp - 1]
jne 0x1018d30d
cmp dword [edi], ecx
jne 0x1018d30d
lea ecx, [esi + 4]
mov esi, dword [esp + 0x20]
add esi, 0xfffffffd
lea edx, [edi + 4]
mov ebx, ecx
cmp ecx, esi
jae 0x1018d168
mov eax, dword [edx]
xor eax, dword [ecx]
jne 0x1018d1ae
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x1018d168
mov eax, dword [edx]
xor eax, dword [ecx]
jne 0x1018d1b6
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x1018d158
mov esi, dword [esp + 0x20]
lea eax, [esi - 1]
cmp ecx, eax
jae 0x1018d181
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x1018d181
add ecx, 2
add edx, 2
cmp ecx, esi
jae 0x1018d18c
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x1018d18c
inc ecx
mov eax, ecx
sub eax, ebx
lea ebx, [eax + 4]
cmp ebx, ebp
jle 0x1018d30d
mov ebp, ebx
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x28], ebp
jmp 0x1018d319
bsf eax, eax
shr eax, 3
jmp 0x1018d190
bsf eax, eax
shr eax, 3
sub eax, ebx
add eax, ecx
jmp 0x1018d190
mov edx, edi
sub edx, dword [esp + 0x58]
add edx, eax
lea eax, [esi - 4]
cmp edi, eax
ja 0x1018d311
cmp dword [edx], ecx
jne 0x1018d311
mov eax, dword [esp + 0x18]
mov edi, esi
sub edi, dword [esp + 0x10]
add edi, eax
cmp edi, dword [esp + 0x20]
lea ecx, [eax + 4]
cmova edi, dword [esp + 0x20]
mov ebx, ecx
add edx, 4
lea esi, [edi - 3]
cmp ecx, esi
jae 0x1018d229
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x1018d2df
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x1018d229
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x1018d2ea
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x1018d215
lea eax, [edi - 1]
cmp ecx, eax
jae 0x1018d23e
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x1018d23e
add ecx, 2
add edx, 2
cmp ecx, edi
jae 0x1018d249
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x1018d249
inc ecx
mov eax, ecx
sub eax, ebx
mov ecx, dword [esp + 0x18]
lea ebx, [eax + 4]
add ecx, ebx
cmp ecx, edi
jne 0x1018d2c1
mov eax, dword [esp + 0x20]
cmp edi, eax
jae 0x1018d2c1
mov edx, dword [esp + 0x14]
lea esi, [eax - 3]
mov edi, ecx
cmp ecx, esi
jae 0x1018d297
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x1018d2f9
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x1018d297
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x1018d301
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x1018d283
mov esi, dword [esp + 0x20]
lea eax, [esi - 1]
cmp ecx, eax
jae 0x1018d2b0
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x1018d2b0
add ecx, 2
add edx, 2
cmp ecx, esi
jae 0x1018d2bb
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x1018d2bb
inc ecx
mov eax, ecx
sub eax, edi
add ebx, eax
mov edi, dword [esp + 0x10]
cmp ebx, ebp
jle 0x1018d313
mov ecx, edi
mov ebp, ebx
sub ecx, dword [esp + 0x1c]
add ecx, dword [esp + 0x14]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x60], ecx
jmp 0x1018d319
bsf eax, eax
shr eax, 3
jmp 0x1018d24d
bsf eax, eax
shr eax, 3
sub eax, ebx
add eax, ecx
jmp 0x1018d24d
bsf eax, eax
shr eax, 3
jmp 0x1018d2bf
bsf eax, eax
shr eax, 3
sub eax, edi
add eax, ecx
jmp 0x1018d2bf
mov edi, dword [esp + 0x10]
cmp ebx, ebp
jne 0x1018d3a6
lea eax, [edi + ebp]
cmp eax, dword [esp + 0x50]
ja 0x1018d3a6
add ebp, 0xfffffffd
mov dword [esp + 0x34], 1
xor ebx, ebx
mov edi, 0x10
test ebp, ebp
jle 0x1018d3a2
nop dword [eax]
mov eax, dword [esp + 0x10]
mov edx, edi
mov ecx, dword [esp + 0xac]
add eax, ebx
movzx eax, ax
inc edi
sar edx, 4
mov esi, 0x10
movzx ecx, word [ecx + eax*2 + 0x20000]
cmp ecx, dword [esp + 0x34]
cmova edi, esi
mov esi, ecx
cmovbe esi, dword [esp + 0x34]
mov ecx, ebx
cmovbe ecx, dword [esp + 0x24]
add ebx, edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x34], esi
cmp ebx, ebp
jl 0x1018d340
mov edi, dword [esp + 0x10]
mov dword [esp + 0x24], ecx
cmp esi, 1
jbe 0x1018d3aa
cmp esi, edi
ja 0x1018d5d5
sub edi, esi
jmp 0x1018d79e
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xac]
movzx eax, di
cmp word [edx + eax*2 + 0x20000], 1
jne 0x1018d787
test ecx, ecx
jne 0x1018d787
mov ebx, dword [esp + 0x4c]
lea ebp, [edi - 1]
test ebx, ebx
jne 0x1018d437
mov ecx, dword [esp + 0x38]
mov eax, ecx
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 0x1018d426
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
add eax, 4
push esi
push ebx
push eax
mov dword [esp + 0x58], 2
call fcn.1018e0c0
mov ecx, dword [esp + 0x30]
add esp, 0xc
add eax, 4
mov dword [esp + 0x54], eax
jmp 0x1018d448
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x4c], 1
jmp 0x1018d787
cmp ebx, 2
jne 0x1018d787
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x20]
cmp ebp, dword [esp + 0x48]
jb 0x1018d787
mov edx, dword [esp + 0x1c]
mov eax, edx
sub eax, ebp
dec eax
cmp eax, 3
jb 0x1018d787
mov edi, dword [esp + 0x14]
sub edi, edx
cmp ebp, edx
cmovb edi, dword [esp + 0x80]
add edi, ebp
cmp dword [edi], esi
jne 0x1018d783
cmp ebp, edx
lea eax, [edi + 4]
push esi
cmovb ebx, dword [esp + 0x68]
push ebx
push eax
call fcn.1018e0c0
mov ecx, dword [esp + 0x28]
add esp, 0xc
lea esi, [eax + 4]
cmp ebp, ecx
jae 0x1018d4e5
lea eax, [esi + edi]
cmp eax, ebx
jne 0x1018d4e5
mov ebx, dword [esp + 0x38]
mov ecx, esi
and ecx, 3
mov eax, ebx
shl ecx, 3
test ecx, ecx
je 0x1018d4b9
rol eax, cl
push eax
push dword [esp + 0x24]
push dword [esp + 0x1c]
call fcn.1018e0c0
add esi, eax
mov eax, dword [esp + 0x20]
cmp ebp, dword [esp + 0x28]
push ebx
cmovb eax, dword [esp + 0x78]
push eax
push edi
call fcn.1018e190
add esp, 0x18
mov ebx, eax
jmp 0x1018d53e
mov eax, dword [esp + 0x14]
cmp ebp, ecx
mov ebx, dword [esp + 0x38]
cmovb eax, dword [esp + 0x68]
push ebx
push eax
push edi
call fcn.1018e190
mov ebx, eax
add esp, 0xc
mov eax, dword [esp + 0x1c]
cmp ebp, eax
jb 0x1018d53e
sub edi, ebx
cmp edi, dword [esp + 0x14]
jne 0x1018d53e
cmp dword [esp + 0x58], eax
jae 0x1018d53e
mov eax, dword [esp + 0x38]
mov ecx, ebx
neg ecx
and ecx, 3
shl ecx, 3
test ecx, ecx
je 0x1018d52b
rol eax, cl
push eax
push dword [esp + 0x6c]
push dword [esp + 0x6c]
call fcn.1018e190
add esp, 0xc
add ebx, eax
mov edi, dword [esp + 0x48]
mov eax, ebp
sub eax, ebx
mov edx, esi
mov ebx, dword [esp + 0x54]
cmp eax, edi
cmova edi, eax
sub edx, edi
add edx, ebp
cmp edx, ebx
jb 0x1018d577
cmp esi, ebx
ja 0x1018d577
mov eax, dword [esp + 0x1c]
sub esi, ebx
mov edi, dword [esp + 0x1c]
add esi, ebp
sub eax, esi
dec eax
cmp eax, 3
cmovae edi, esi
jmp 0x1018d79e
mov ebp, dword [esp + 0x1c]
mov ecx, ebp
sub ecx, edi
lea eax, [ecx - 1]
cmp eax, 3
jae 0x1018d58e
mov edi, ebp
jmp 0x1018d79e
cmp edx, ebx
mov eax, ebx
cmovb eax, edx
cmp dword [esp + 0x28], eax
jae 0x1018d5bb
mov edx, dword [esp + 0x14]
sub ecx, edx
add ecx, dword [esp + 0x18]
cmp ecx, 0xffff
ja 0x1018d5d5
mov ebx, edi
mov dword [esp + 0x28], eax
sub ebx, ebp
add ebx, edx
mov dword [esp + 0x60], ebx
mov ecx, dword [esp + 0xac]
movzx eax, di
movzx eax, word [ecx + eax*2 + 0x20000]
cmp eax, edi
jbe 0x1018d79c
mov ebx, dword [esp + 0x48]
mov edx, dword [esp + 0x50]
cmp dword [esp + 0xd0], 1
jne 0x1018d73c
mov edi, dword [esp + 0x5c]
test edi, edi
jle 0x1018d73c
mov eax, edx
sub eax, ebx
cmp eax, 0xffff
jae 0x1018d73c
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x78]
imul eax, dword [eax], 0x9e3779b1
mov edx, dword [ebx + 0x40004]
mov ecx, dword [ebx + 0x40000]
mov esi, dword [ebx + 0x4000c]
sub ecx, edx
add ecx, esi
mov dword [esp + 0x4c], esi
shr eax, 0x11
mov dword [esp + 0x80], edx
mov dword [esp + 0x34], ecx
mov ebx, dword [ebx + eax*4]
mov ebp, ebx
mov eax, dword [esp + 0x50]
sub ebp, ecx
add ebp, dword [esp + 0x48]
sub eax, ebp
cmp eax, 0xffff
ja 0x1018d73c
mov eax, edi
dec edi
mov dword [esp + 0x5c], edi
test eax, eax
je 0x1018d73c
mov eax, dword [esp + 0x38]
sub edx, esi
add edx, ebx
cmp dword [edx], eax
jne 0x1018d711
mov eax, dword [esp + 0x18]
mov esi, ecx
sub esi, ebx
add esi, eax
cmp esi, dword [esp + 0x20]
lea ecx, [eax + 4]
cmova esi, dword [esp + 0x20]
add edx, 4
mov dword [esp + 0x54], ecx
lea edi, [esi - 3]
cmp ecx, edi
jae 0x1018d6c4
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x1018d7b7
add ecx, 4
add edx, 4
cmp ecx, edi
jae 0x1018d6c4
nop
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x1018d7c2
add ecx, 4
add edx, 4
cmp ecx, edi
jb 0x1018d6b0
lea eax, [esi - 1]
cmp ecx, eax
jae 0x1018d6d9
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x1018d6d9
add ecx, 2
add edx, 2
cmp ecx, esi
jae 0x1018d6e4
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x1018d6e4
inc ecx
mov eax, ecx
sub eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x34]
add eax, 4
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x5c]
cmp eax, dword [esp + 0x28]
jle 0x1018d711
mov dword [esp + 0x28], eax
mov eax, ebp
sub eax, dword [esp + 0x1c]
add eax, dword [esp + 0x14]
mov dword [esp + 0x60], eax
mov edx, dword [esp + 0x78]
movzx eax, bx
movzx eax, word [edx + eax*2 + 0x20000]
mov edx, dword [esp + 0x80]
sub ebx, eax
sub ebp, eax
mov eax, dword [esp + 0x50]
sub eax, ebp
cmp eax, 0xffff
jbe 0x1018d658
mov edx, dword [esp + 0x28]
cmp edx, dword [esp + 0x8c]
jle 0x1018d7d3
cmp dword [esp + 0xd4], 0
je 0x1018d771
xor ecx, ecx
cmp edx, 0x24
setle cl
xor eax, eax
cmp edx, 0x12
setg al
test eax, ecx
mov eax, 0x12
cmovne edx, eax
mov ebx, dword [esp + 0x18]
sub ebx, dword [esp + 0x60]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x74], ebx
jmp 0x1018d7d9
mov edi, dword [esp + 0x10]
lea eax, [edi + ecx]
mov ecx, dword [esp + 0xac]
movzx eax, ax
movzx eax, word [ecx + eax*2 + 0x20000]
sub edi, eax
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x10], edi
cmp edi, ebx
jae 0x1018d0d0
jmp 0x1018d5d9
bsf eax, eax
shr eax, 3
jmp 0x1018d6ea
bsf eax, eax
shr eax, 3
sub eax, dword [esp + 0x54]
add eax, ecx
jmp 0x1018d6ea
mov edx, dword [esp + 0x6c]
mov ebx, edx
mov eax, edx
mov dword [esp + 0x90], 0
mov ecx, ebx
mov ebx, dword [esp + 0x44]
test eax, eax
je 0x1018db5b
mov esi, eax
cmp eax, dword [esp + 0x94]
ja 0x1018dc0c
add eax, ebx
cmp eax, 0x1000
jge 0x1018dc0c
mov ecx, dword [esp + 0x40]
mov eax, ebx
add eax, eax
mov esi, dword [ecx + eax*8 + 0xc]
mov ebx, esi
lea edi, [esi - 0xf]
cmp esi, 0xf
jl 0x1018d83c
mov eax, 0x80808081
imul edi
add edx, edi
sar edx, 7
mov ebx, edx
shr ebx, 0x1f
inc ebx
add ebx, edx
add ebx, esi
lea ebp, [esi + 1]
mov ecx, ebp
cmp ebp, 0xf
jl 0x1018d861
lea ecx, [ebp - 0xf]
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, 2
add ecx, edx
add ecx, esi
mov edx, dword [esp + 0x44]
mov eax, edx
mov ebp, dword [esp + 0x40]
add eax, eax
mov eax, dword [ebp + eax*8]
sub eax, ebx
lea ebx, [edx + 1]
add eax, ecx
add ebx, ebx
mov ecx, ebp
lea ebp, [esi + 1]
cmp eax, dword [ecx + ebx*8]
jge 0x1018d89b
mov dword [ecx + ebx*8 + 8], 1
mov dword [ecx + ebx*8 + 4], 0
mov dword [ecx + ebx*8 + 0xc], ebp
mov dword [ecx + ebx*8], eax
cmp esi, 0xf
jl 0x1018d8b8
mov eax, 0x80808081
imul edi
add edx, edi
sar edx, 7
mov edi, edx
shr edi, 0x1f
inc edi
add edi, edx
add edi, esi
jmp 0x1018d8ba
mov edi, esi
inc ebp
mov ecx, ebp
cmp ebp, 0xf
jl 0x1018d8dd
lea ecx, [esi - 0xd]
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, 3
add ecx, edx
add ecx, esi
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
add eax, eax
mov eax, dword [edx + eax*8]
sub eax, edi
add eax, ecx
cmp eax, dword [edx + ebx*8 + 0x10]
jge 0x1018d910
mov dword [edx + ebx*8 + 0x1c], ebp
mov ebp, edx
mov dword [edx + ebx*8 + 0x18], 1
mov dword [edx + ebx*8 + 0x14], 0
mov dword [ebp + ebx*8 + 0x10], eax
jmp 0x1018d912
mov ebp, edx
mov ebx, esi
cmp esi, 0xf
jl 0x1018d932
lea ecx, [esi - 0xf]
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov ebx, edx
shr ebx, 0x1f
inc ebx
add ebx, edx
add ebx, esi
lea edi, [esi + 3]
mov edx, edi
cmp edi, 0xf
jl 0x1018d957
lea ecx, [esi - 0xc]
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
add edx, 4
shr eax, 0x1f
add edx, eax
add edx, esi
mov eax, dword [esp + 0x44]
add eax, eax
mov ecx, dword [ebp + eax*8]
sub ecx, ebx
mov ebx, dword [esp + 0x44]
add ecx, edx
lea edx, [ebx + 3]
add edx, edx
cmp ecx, dword [ebp + edx*8]
jge 0x1018d998
mov eax, ebx
mov dword [ebp + edx*8], ecx
add eax, eax
mov dword [ebp + eax*8 + 0x38], 1
mov eax, ebx
add eax, eax
mov dword [ebp + eax*8 + 0x34], 0
mov eax, ebx
add eax, eax
mov dword [ebp + eax*8 + 0x3c], edi
mov esi, 4
cmp dword [esp + 0x6c], esi
jl 0x1018dae9
mov ecx, ebx
mov edx, ebx
shl ecx, 4
mov eax, ebx
shl edx, 4
add ecx, 8
add edx, 0xc
shl eax, 4
add ecx, ebp
add edx, ebp
add ebp, eax
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x80], edx
mov dword [esp + 0x34], ebp
lea ebx, [ebp + 0x44]
cmp dword [ecx], 1
jne 0x1018da50
mov edi, dword [edx]
mov eax, dword [esp + 0x44]
cmp eax, edi
jle 0x1018d9fb
mov ecx, dword [esp + 0x40]
sub eax, edi
add eax, eax
mov eax, dword [ecx + eax*8]
mov dword [esp + 0x54], eax
jmp 0x1018da03
mov dword [esp + 0x54], 0
mov ebp, edi
cmp edi, 0xf
jl 0x1018da23
lea ecx, [edi - 0xf]
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov ebp, edx
shr ebp, 0x1f
inc ebp
add ebp, edx
add ebp, edi
add ebp, 3
cmp esi, 0x13
jl 0x1018da44
lea ecx, [esi - 0x13]
mov eax, 0x80808081
imul ecx
inc ebp
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add ebp, eax
mov ecx, dword [esp + 0x54]
add ecx, ebp
mov ebp, dword [esp + 0x34]
jmp 0x1018da78
xor edi, edi
lea eax, [edi + 3]
cmp esi, 0x13
jl 0x1018da73
lea ecx, [esi - 0x13]
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, 4
add eax, edx
mov ecx, dword [ebp]
add ecx, eax
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x30]
add edx, esi
add eax, 3
cmp edx, eax
jg 0x1018da97
mov eax, dword [ebx - 4]
sub eax, dword [esp + 0xd4]
cmp ecx, eax
jg 0x1018dac7
mov eax, dword [esp + 0x6c]
cmp esi, eax
jne 0x1018dab6
mov ebp, dword [esp + 0x30]
cmp ebp, edx
cmovl ebp, edx
mov edx, ebp
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x74]
mov dword [ebx + 4], esi
mov dword [ebx], edx
mov dword [ebx + 8], edi
mov dword [ebx - 4], ecx
jmp 0x1018dacb
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x8c]
inc esi
mov edx, dword [esp + 0x80]
add ebx, 0x10
cmp esi, eax
jle 0x1018d9d7
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x30]
mov ecx, ebp
mov esi, dword [esp + 0x40]
add ecx, ecx
lea edx, [ebp + 1]
shl edx, 4
add edx, esi
mov dword [edx + 8], 1
mov dword [edx + 4], 0
mov dword [edx + 0xc], 1
mov eax, dword [esi + ecx*8]
inc eax
mov dword [edx + 0x18], 1
mov dword [edx], eax
mov dword [edx + 0x14], 0
mov dword [edx + 0x1c], 2
mov eax, dword [esi + ecx*8]
add eax, 2
mov dword [edx + 0x28], 1
mov dword [edx + 0x10], eax
lea eax, [ebp + 3]
mov dword [edx + 0x24], 0
mov dword [edx + 0x2c], 3
mov ecx, dword [esi + ecx*8]
add ecx, 3
add eax, eax
mov dword [esi + eax*8], ecx
jmp 0x1018db63
mov ebp, dword [esp + 0x30]
mov esi, dword [esp + 0x40]
inc ebx
mov dword [esp + 0x44], ebx
cmp ebx, ebp
jl 0x1018c5d1
mov edi, dword [esp + 0x40]
mov eax, ebp
add eax, eax
mov ebx, ebp
mov esi, dword [esi + eax*8 + 8]
sub ebx, esi
mov ecx, dword [edi + eax*8 + 4]
mov ebp, dword [esp + 0x40]
mov eax, ebx
add eax, eax
mov edx, dword [edi + eax*8 + 8]
mov edi, dword [edi + eax*8 + 4]
mov dword [ebp + eax*8 + 8], esi
mov esi, ebp
mov ebp, dword [esp + 0x30]
mov dword [esi + eax*8 + 4], ecx
mov esi, edx
cmp edx, ebx
jg 0x1018dbd1
mov ebp, dword [esp + 0x40]
nop dword [eax]
sub ebx, edx
mov ecx, ebx
shl ecx, 4
add ecx, ebp
mov edx, dword [ecx + 8]
mov eax, dword [ecx + 4]
mov dword [ecx + 8], esi
mov esi, edx
mov dword [ecx + 4], edi
mov edi, eax
cmp edx, ebx
jle 0x1018dbb0
mov ebp, dword [esp + 0x30]
xor ebx, ebx
test ebp, ebp
jle 0x1018ddc1
nop dword [eax + eax]
mov ecx, dword [esp + 0x40]
mov eax, ebx
add eax, eax
mov esi, dword [ecx + eax*8 + 8]
mov ecx, dword [ecx + eax*8 + 4]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x78], ecx
cmp esi, 1
jne 0x1018dc1c
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x70]
inc ecx
inc ebx
jmp 0x1018ddb3
mov edi, dword [esp + 0x40]
lea ebp, [ebx + 1]
mov dword [esp + 0x30], ebp
jmp 0x1018db84
mov edi, dword [esp + 0x3c]
add ebx, esi
mov eax, dword [esp + 0x2c]
mov ebp, edi
sub eax, ecx
mov dword [esp + 0x34], edi
mov ecx, dword [esp + 0x2c]
sub ecx, dword [esp + 0x70]
mov dword [esp + 0x64], edi
inc edi
cmp dword [esp + 0xc8], 0
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x80], eax
mov dword [esp + 0x3c], edi
mov dword [esp + 0x54], ecx
je 0x1018dc79
mov eax, 0x80808081
mul ecx
lea eax, [ecx + 8]
shr edx, 7
add eax, edx
add eax, edi
cmp eax, dword [esp + 0x84]
ja 0x1018ddf1
cmp ecx, 0xf
jb 0x1018dccf
lea ebx, [ecx - 0xf]
mov byte [ebp], 0xf0
cmp ebx, 0xff
jb 0x1018dcbf
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 word [eax + eax]
sub ebx, 0xff
sub esi, 1
jne 0x1018dcb0
mov ecx, dword [esp + 0x54]
mov byte [edi], bl
inc edi
mov ebx, dword [esp + 0x8c]
mov dword [esp + 0x3c], edi
jmp 0x1018dcd7
mov al, cl
shl al, 4
mov byte [ebp], al
mov esi, dword [esp + 0x70]
mov edx, edi
add edi, ecx
sub esi, dword [esp + 0x3c]
mov eax, dword [esi + edx]
mov ecx, dword [esi + edx + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
cmp edx, edi
jb 0x1018dce3
mov edi, dword [esp + 0x3c]
add edi, dword [esp + 0x54]
mov eax, dword [esp + 0x2c]
sub eax, dword [esp + 0x80]
mov esi, dword [esp + 0x4c]
mov word [edi], ax
add edi, 2
cmp dword [esp + 0xc8], 0
mov dword [esp + 0x3c], edi
lea ecx, [esi - 4]
je 0x1018dd40
mov eax, 0x80808081
mul ecx
lea eax, [edi + 6]
shr edx, 7
add eax, edx
cmp eax, dword [esp + 0x84]
ja 0x1018ddf1
mov eax, dword [esp + 0x64]
mov al, byte [eax]
cmp ecx, 0xf
jb 0x1018dd9e
add al, 0xf
sub ecx, 0xf
mov byte [ebp], al
cmp ecx, 0x1fe
jb 0x1018dd83
mov eax, 0x80808081
mul ecx
shr edx, 8
nop word [eax + eax]
mov word [edi], 0xffff
sub ecx, 0x1fe
add edi, 2
sub edx, 1
jne 0x1018dd70
cmp ecx, 0xff
jb 0x1018dd95
sub ecx, 0xff
mov byte [edi], 0xff
inc edi
mov byte [edi], cl
inc edi
mov dword [esp + 0x3c], edi
jmp 0x1018dda3
add al, cl
mov byte [ebp], al
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x30]
add ecx, esi
mov edi, ecx
mov dword [esp + 0x70], edi
mov dword [esp + 0x2c], ecx
cmp ebx, ebp
jl 0x1018dbe0
jmp 0x1018ddc9
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0x7c]
add eax, 0xfffffff4
cmp ecx, eax
ja 0x1018dfb9
mov ebx, dword [esp + 0xac]
jmp 0x1018b8a0
mov esi, dword [esp + 0xc8]
mov eax, dword [esp + 0x2c]
jmp 0x1018de06
mov eax, dword [esp + 0x2c]
mov edi, eax
sub edi, dword [esp + 0x78]
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0xc8]
cmp esi, 2
jne 0x1018e0a5
mov ebp, dword [esp + 0x34]
mov ebx, eax
sub ebx, dword [esp + 0x70]
mov eax, 0x80808081
mov dword [esp + 0x8c], ebx
mov esi, ebp
lea ecx, [ebx + 0xf0]
mul ecx
mov ecx, dword [esp + 0x84]
shr edx, 7
add ecx, 0xfffffffd
inc edx
add edx, ebx
lea eax, [edx + ebp]
cmp eax, ecx
ja 0x1018dfc5
sub ecx, edx
sub ecx, ebp
imul eax, ecx, 0xff
mov ecx, dword [esp + 0x30]
add eax, 0x12
cmp ecx, eax
cmova ecx, eax
mov eax, dword [esp + 0x84]
sub eax, edx
mov dword [esp + 0x30], ecx
sub eax, ebp
add eax, 2
add eax, ecx
cmp eax, 0xc
jl 0x1018dfc5
lea ecx, [ebp + 1]
mov dword [esp + 0x3c], ecx
cmp ebx, 0xf
jb 0x1018dedb
add ebx, 0xfffffff1
mov byte [ebp], 0xf0
cmp ebx, 0xff
jb 0x1018decb
mov eax, 0x80808081
mul ebx
mov esi, edx
shr esi, 7
push esi
push 0xff
push ecx
call fcn.1010f560
mov ecx, dword [esp + 0x48]
add esp, 0xc
add ecx, esi
nop dword [eax]
sub ebx, 0xff
sub esi, 1
jne 0x1018dec0
mov byte [ecx], bl
inc ecx
mov ebx, dword [esp + 0x8c]
mov dword [esp + 0x3c], ecx
jmp 0x1018dee3
mov al, bl
shl al, 4
mov byte [ebp], al
mov ebp, dword [esp + 0x70]
lea esi, [ebx + ecx]
mov edx, ecx
sub ebp, ecx
nop
mov eax, dword [edx + ebp]
mov ecx, dword [edx + ebp + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
cmp edx, esi
jb 0x1018def0
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x30]
add esi, ebx
mov ebx, dword [esp + 0x2c]
mov eax, ebx
mov ebp, dword [esp + 0x34]
sub eax, edi
mov word [esi], ax
lea ecx, [edx - 4]
add esi, 2
mov al, byte [ebp]
cmp ecx, 0xf
jb 0x1018df7e
add al, 0xf
sub ecx, 0xf
mov byte [ebp], al
cmp ecx, 0x1fe
jb 0x1018df67
mov eax, 0x80808081
mul ecx
shr edx, 8
nop dword [eax]
nop dword [eax + eax]
mov word [esi], 0xffff
sub ecx, 0x1fe
add esi, 2
sub edx, 1
jne 0x1018df50
mov edx, dword [esp + 0x30]
cmp ecx, 0xff
jb 0x1018df79
sub ecx, 0xff
mov byte [esi], 0xff
inc esi
mov byte [esi], cl
inc esi
jmp 0x1018df83
add al, cl
mov byte [ebp], al
mov ebp, dword [esp + 0x7c]
lea edi, [edx + ebx]
mov ebx, dword [esp + 0x84]
sub ebp, edi
mov eax, 0x80808081
mov dword [esp + 0x70], edi
mov dword [esp + 0x7c], ebp
lea ecx, [ebp + 0xf0]
mul ecx
mov ecx, dword [esp + 0xc8]
shr edx, 7
add edx, ebp
add ebx, 5
jmp 0x1018e001
mov esi, dword [esp + 0x3c]
jmp 0x1018dfc9
mov esi, dword [esp + 0x3c]
jmp 0x1018dfd0
mov edi, dword [esp + 0x70]
mov ebx, dword [esp + 0x84]
mov ebp, dword [esp + 0x7c]
mov eax, 0x80808081
sub ebp, edi
mov dword [esp + 0x7c], ebp
lea ecx, [ebp + 0xf0]
mul ecx
mov ecx, dword [esp + 0xc8]
shr edx, 7
add edx, ebp
cmp ecx, 2
jne 0x1018dffd
add ebx, 5
jmp 0x1018e001
test ecx, ecx
je 0x1018e027
lea eax, [esi + 1]
add eax, edx
cmp eax, ebx
jbe 0x1018e027
cmp ecx, 1
je 0x1018e0a5
sub ebx, esi
dec ebx
lea eax, [ebx + 0xf1]
shr eax, 8
sub ebx, eax
mov dword [esp + 0x7c], ebx
jmp 0x1018e02b
mov ebx, dword [esp + 0x7c]
lea ebp, [ebx + edi]
lea edi, [esi + 1]
cmp ebx, 0xf
jb 0x1018e075
add ebx, 0xfffffff1
mov byte [esi], 0xf0
cmp ebx, 0xff
jb 0x1018e06c
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
sub ebx, 0xff
sub esi, 1
jne 0x1018e061
mov byte [edi], bl
inc edi
mov ebx, dword [esp + 0x7c]
jmp 0x1018e07c
mov al, bl
shl al, 4
mov byte [esi], al
push ebx
push dword [esp + 0x74]
push edi
call fcn.1010efe0
mov eax, dword [esp + 0xc4]
add esp, 0xc
sub ebp, dword [esp + 0xb0]
sub ebx, dword [esp + 0xb4]
add ebx, edi
mov dword [eax], ebp
jmp 0x1018e0a7
xor ebx, ebx
push dword [esp + 0x40]
call fcn.10115694
add esp, 4
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x98
ret