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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x240
mov esi, esp
mov dword [esi + 0x228], ebp
lea eax, [esi + 0x230]
mov bl, byte [ebp + 0x10]
xor edx, edx
lea edi, [esi + 0x38]
mov dword [eax - 4], esp
mov dword [eax + 8], 0xffffffff
mov dword [eax + 4], 0x101921b0
mov ecx, dword fs:[0]
movzx ebx, bl
mov dword [eax], ecx
lea ecx, [esi + 0x68]
mov dword fs:[0], eax
mov dword [eax + 8], 3
lea eax, [esi + 0x48]
mov dword [edi + 4], edx
mov dword [edi], edx
mov dword [edi + 8], edx
mov dword [esi + 0x7c], edx
mov dword [esi + 0x78], edx
mov dword [esi + 0x80], edx
mov dword [esi + 0x10], fcn.1006e0d0
mov dword [ecx + 4], edx
mov dword [ecx], edx
mov dword [ecx + 8], edx
lea ecx, [esi + 0x58]
mov dword [eax + 4], edx
mov dword [eax], edx
mov dword [eax + 8], edx
mov dword [ecx + 4], edx
mov dword [ecx], edx
mov dword [ecx + 8], edx
lea edx, [esi + 0x98]
mov dword [esi + 0x14], edx
lea edx, [esi + 0x90]
push edx
push eax
push ecx
push edi
lea eax, [esi + 0x68]
mov dword [esi + 0x64], eax
lea eax, [esi + 0x68]
push eax
lea eax, [esi + 0x32]
push eax
lea eax, [esi + 0x33]
push eax
lea eax, [esi + 0x94]
push eax
push dword [ebp + 0x14]
push ebx
call fcn.10187190
lea ebx, [esi + 0x98]
add esp, 0x28
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x2c]
mov dword [esi + 0x24], ebx
mov dword [esi + 0x20], 0
mov dword [esi + 0x2c], eax
mov eax, dword [ebp + 0x28]
mov eax, dword [eax]
mov dword [ecx], eax
lea eax, [esi + 0x228]
mov ecx, fcn.1006e0d0
mov dword [esi + 0x34], eax
xor eax, eax
inc eax
mov dword [esi + 0x8c], eax
xor eax, eax
cmp eax, 3
mov dword [esi + 8], ebx
mov dword [esi + 4], ecx
ja 0x10186b82
mov dword [esi + 0x10], ecx
mov ecx, dword [ebp + 8]
mov dword [esi + 0x18], eax
lea eax, [ebp + 0xc]
mov dword [esi + 0x14], ebx
mov dword [esi + 0x238], 3
push eax
call fcn.10176560
mov ebx, dword [esi + 8]
test al, al
mov ecx, dword [esi + 4]
mov eax, dword [esi + 0x18]
jne 0x10186b82
movsx eax, byte [esi + eax + 0x94]
cmp eax, 4
ja case.default.0x1018604c
jmp dword [eax*4 + 0x10186ee8]
cmp dword [esi + 0x18], 3
jne 0x10186704
jmp 0x10186b3a
mov dword [esi + 0xc], 0
mov eax, dword [esi + 4]
mov ecx, dword [ebp + 8]
mov dword [esi + 8], ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x10], eax
lea eax, [ebp + 0xc]
push eax
call fcn.10176560
mov ebx, dword [esi + 8]
test al, al
jne 0x10186318
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x1018609e
movzx edx, byte [eax]
jmp 0x101860b3
mov eax, dword [ecx]
mov edx, dword [esi + 4]
mov eax, dword [eax + 0x20]
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], ebx
call eax
mov ebx, dword [esi + 8]
mov edx, eax
test dl, dl
js 0x101860ca
mov eax, dword [ebp + 0x24]
movsx ecx, dl
mov eax, dword [eax + 8]
test byte [eax + ecx*2], 4
jne 0x10186169
movzx eax, byte [esi + 0x73]
test al, al
jns 0x101860d5
mov eax, dword [esi + 0x6c]
cmp byte [esi + 0x32], dl
jne 0x10186318
cmp dword [esi + 0xc], 0
je 0x10186318
test eax, eax
je 0x10186318
mov ecx, dword [esi + 0x24]
mov edi, dword [esi + 0x34]
cmp ecx, edi
jne 0x10186152
sub edi, ebx
mov eax, 0xffffffff
mov ecx, 0
cmp edi, 0x7fffffff
lea edi, [edi + edi]
cmovae edi, eax
mov eax, 4
test edi, edi
cmove edi, eax
cmp dword [esi + 4], 0x1006e0d0
mov eax, ebx
cmove eax, ecx
push edi
push eax
call fcn.101f2423
add esp, 8
test eax, eax
je 0x10186dd2
mov ecx, dword [esi + 0x24]
and edi, 0xfffffffc
mov dword [esi + 4], fcn.101f159d
add edi, eax
mov dword [esi + 0x34], edi
sub ecx, ebx
mov ebx, eax
add ecx, eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0xc], 0
mov dword [ecx], eax
add ecx, 4
mov dword [esi + 0x24], ecx
jmp 0x10186241
mov eax, dword [ebp + 0x2c]
mov ecx, dword [esi + 0x2c]
mov edi, dword [eax]
cmp edi, ecx
je 0x1018617d
mov ecx, dword [ebp + 0x2c]
jmp 0x10186237
mov eax, dword [ebp + 0x28]
mov dword [esi + 0x28], edi
mov dword [esi + 0x1c], edx
mov ebx, dword [eax]
mov edi, dword [eax + 4]
mov eax, 0xffffffff
sub ecx, ebx
cmp ecx, 0x7fffffff
lea ecx, [ecx + ecx]
cmovae ecx, eax
mov eax, 1
test ecx, ecx
cmove ecx, eax
cmp edi, fcn.1006e0d0
mov eax, 0
cmovne eax, ebx
mov dword [esi + 0x2c], ecx
push ecx
push eax
call fcn.101f2423
add esp, 8
test eax, eax
je 0x10186df1
cmp edi, fcn.1006e0d0
mov dword [esi + 0x88], ebx
je 0x101861e0
mov ecx, dword [ebp + 0x28]
mov dword [ecx], eax
jmp 0x1018620c
mov edx, dword [ebp + 0x28]
mov edi, dword [esi + 0x28]
mov ecx, dword [edx]
mov dword [edx], eax
mov edx, dword [esi + 0x1c]
test ecx, ecx
je 0x10186212
mov eax, dword [ebp + 0x28]
mov eax, dword [eax + 4]
mov dword [esi + 0x238], 0
push ecx
call eax
add esp, 4
mov eax, dword [ebp + 0x28]
mov eax, dword [eax]
mov edx, dword [esi + 0x1c]
mov edi, dword [esi + 0x28]
sub edi, dword [esi + 0x88]
mov ecx, dword [ebp + 0x2c]
mov ebx, dword [ebp + 0x28]
add edi, eax
mov eax, dword [ebp + 0x28]
mov dword [eax + 4], fcn.101f159d
mov eax, dword [esi + 0x2c]
mov dword [ecx], edi
add eax, dword [ebx]
mov ebx, dword [esi + 8]
mov dword [esi + 0x2c], eax
inc dword [esi + 0xc]
lea eax, [edi + 1]
mov dword [ecx], eax
mov byte [edi], dl
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x10186261
inc eax
mov dword [ecx + 0xc], eax
mov dword [esi + 0x238], 3
jmp 0x10186069
mov eax, dword [ecx]
mov edx, dword [esi + 4]
mov dword [esi + 8], ebx
mov eax, dword [eax + 0x24]
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x238], 3
call eax
mov ebx, dword [esi + 8]
jmp 0x10186069
mov eax, dword [esi + 0x18]
cmp eax, 2
jb 0x10186342
cmp dword [esi + 0x20], 0
jne 0x10186342
cmp eax, 2
sete al
cmp byte [esi + 0x97], 0
setne cl
bt dword [ebp + 0x18], 9
jb 0x10186392
and al, cl
jne 0x10186392
mov dword [esi + 0x20], 0
jmp 0x10186b3a
movzx ecx, byte [esi + 0x63]
test cl, cl
mov edx, ecx
jns 0x101862d8
mov edx, dword [esi + 0x5c]
movzx eax, byte [esi + 0x53]
test al, al
mov ebx, eax
jns 0x101862e5
mov ebx, dword [esi + 0x4c]
mov edi, edx
add edi, ebx
jne 0x10186364
mov ebx, dword [esi + 8]
jmp 0x10186b3a
mov eax, dword [esi + 0x18]
cmp eax, 3
je 0x10186b40
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x101863f2
movzx eax, byte [eax]
jmp 0x10186405
cmp ebx, dword [esi + 0x24]
je 0x101863e7
cmp dword [esi + 0xc], 0
mov ecx, dword [esi + 4]
je 0x101863ea
mov eax, dword [esi + 0x34]
cmp dword [esi + 0x24], eax
je 0x1018643f
mov edx, dword [esi + 0x24]
jmp 0x1018649b
mov edi, eax
mov al, byte [esi + 0x43]
mov ecx, dword [esi + 0x38]
lea edx, [esi + 0x38]
test al, al
cmovs edx, ecx
test edi, edi
mov dword [esi + 0xc], edx
je 0x10186a6f
mov edx, eax
shr dl, 7
jmp 0x101863a8
mov edi, dword [ebp + 8]
mov dword [esi + 0x1c], ecx
test edx, edx
mov edi, dword [edi]
mov ecx, dword [edi + 0xc]
mov dword [esi + 0xc], edi
mov edi, dword [edi + 0x10]
je 0x101863cc
test ebx, ebx
je 0x101863cc
cmp ecx, edi
je 0x10186831
mov edx, ecx
movzx ebx, byte [ecx]
mov ecx, dword [esi + 0x1c]
jmp 0x1018685c
mov al, byte [esi + 0x43]
mov ecx, dword [esi + 0x38]
lea ebx, [esi + 0x38]
mov edx, eax
shr dl, 7
test al, al
cmovs ebx, ecx
mov dword [esi + 0xc], ebx
mov edi, dword [esi + 0x18]
lea ebx, [esi + 0x94]
cmp byte [edi + ebx - 1], 1
ja 0x10186a6c
test dl, dl
je 0x101867c4
mov edi, dword [esi + 0x3c]
jmp 0x101867c7
test edx, edx
je 0x1018688a
cmp ecx, edi
je 0x1018689a
movzx eax, byte [ecx]
mov ecx, dword [esi + 0x1c]
jmp 0x101868b5
mov ecx, dword [esi + 4]
mov eax, dword [esi + 0x34]
jmp 0x101864a6
mov eax, dword [ecx]
mov edx, dword [esi + 4]
mov eax, dword [eax + 0x20]
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], ebx
call eax
mov ebx, dword [esi + 8]
test al, al
js 0x10186c3e
mov ecx, dword [ebp + 0x24]
movsx eax, al
mov ecx, dword [ecx + 8]
test byte [ecx + eax*2], 8
je 0x10186c3e
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x101866d9
lea edx, [eax + 1]
mov dword [ecx + 0xc], edx
movzx eax, byte [eax]
jmp 0x101866ec
sub eax, ebx
mov edx, 0xffffffff
mov edi, ebx
cmp eax, 0x7fffffff
lea eax, [eax + eax]
cmovae eax, edx
mov edx, 4
test eax, eax
cmove eax, edx
cmp ecx, fcn.1006e0d0
mov edx, 0
mov ebx, eax
mov eax, edi
cmove eax, edx
push ebx
push eax
mov dword [esi + 4], ecx
call fcn.101f2423
add esp, 8
test eax, eax
je 0x10186e02
mov edx, dword [esi + 0x24]
and ebx, 0xfffffffc
mov ecx, fcn.101f159d
add ebx, eax
sub edx, edi
mov edi, eax
add edx, eax
mov eax, ebx
mov ebx, edi
mov edi, dword [esi + 0xc]
mov dword [edx], edi
add edx, 4
mov dword [esi + 0x24], edx
cmp dword [esi + 0x90], 0
mov dword [esi + 0x34], eax
jle 0x101867af
mov dword [esi + 4], ecx
mov dword [esi + 0x10], ecx
mov ecx, dword [ebp + 8]
lea eax, [ebp + 0xc]
mov dword [esi + 0x14], ebx
push eax
mov dword [esi + 8], ebx
call fcn.10176560
mov ebx, dword [esi + 8]
test al, al
jne 0x10186c3e
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x101864eb
movzx eax, byte [eax]
jmp 0x101864fe
mov eax, dword [ecx]
mov edx, dword [esi + 4]
mov eax, dword [eax + 0x20]
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], ebx
call eax
mov ebx, dword [esi + 8]
cmp byte [esi + 0x33], al
jne 0x10186c3e
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x101866c1
inc eax
mov dword [ecx + 0xc], eax
cmp dword [esi + 0x90], 0
jle 0x101867ac
mov eax, dword [esi + 4]
mov ecx, dword [ebp + 8]
mov dword [esi + 0x14], ebx
mov dword [esi + 0x238], 3
mov dword [esi + 0x10], eax
lea eax, [ebp + 0xc]
push eax
call fcn.10176560
mov ebx, dword [esi + 8]
test al, al
jne 0x10186c3e
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x10186565
movzx eax, byte [eax]
jmp 0x10186578
mov eax, dword [ecx]
mov edx, dword [esi + 4]
mov eax, dword [eax + 0x20]
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], ebx
call eax
mov ebx, dword [esi + 8]
test al, al
js 0x10186c3e
mov ecx, dword [ebp + 0x24]
movsx eax, al
mov ecx, dword [ecx + 8]
test byte [ecx + eax*2], 4
je 0x10186c3e
mov eax, dword [ebp + 0x2c]
mov ecx, dword [esi + 0x2c]
mov edi, dword [eax]
cmp edi, ecx
jne 0x1018664a
mov eax, dword [ebp + 0x28]
mov dword [esi + 0xc], edi
mov ebx, dword [eax]
mov edi, dword [eax + 4]
mov eax, 0xffffffff
sub ecx, ebx
cmp ecx, 0x7fffffff
lea ecx, [ecx + ecx]
cmovae ecx, eax
mov eax, 1
test ecx, ecx
cmove ecx, eax
cmp edi, fcn.1006e0d0
mov eax, 0
cmovne eax, ebx
mov dword [esi + 0x2c], ecx
push ecx
push eax
call fcn.101f2423
add esp, 8
test eax, eax
je 0x10186de0
cmp edi, fcn.1006e0d0
mov dword [esi + 0x1c], ebx
je 0x10186602
mov ecx, dword [ebp + 0x28]
mov edx, ecx
mov dword [ecx], eax
jmp 0x1018662b
mov edx, dword [ebp + 0x28]
mov ebx, dword [esi + 8]
mov edi, dword [esi + 0xc]
mov ecx, dword [edx]
mov dword [edx], eax
test ecx, ecx
je 0x10186631
mov eax, dword [edx + 4]
mov dword [esi + 0x238], 1
push ecx
call eax
add esp, 4
mov edx, dword [ebp + 0x28]
mov eax, dword [edx]
mov ebx, dword [esi + 8]
mov edi, dword [esi + 0xc]
sub edi, dword [esi + 0x1c]
mov ecx, dword [esi + 0x2c]
mov dword [edx + 4], fcn.101f159d
add edi, eax
mov eax, dword [ebp + 0x2c]
mov dword [eax], edi
add ecx, dword [edx]
mov dword [esi + 0x2c], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x1018665f
movzx eax, byte [eax]
mov edx, dword [ebp + 0x2c]
jmp 0x10186681
mov eax, dword [ecx]
mov edx, dword [esi + 4]
mov eax, dword [eax + 0x20]
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x238], 3
call eax
mov ebx, dword [esi + 8]
mov edx, dword [ebp + 0x2c]
mov edi, dword [edx]
lea ecx, [edi + 1]
mov dword [edx], ecx
mov byte [edi], al
mov eax, dword [ebp + 8]
dec dword [esi + 0x90]
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
jne 0x10186518
mov eax, dword [ecx]
mov edx, dword [esi + 4]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x238], 3
call eax
mov ebx, dword [esi + 8]
jmp 0x1018651c
mov eax, dword [ecx]
mov edx, dword [esi + 4]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], ebx
call eax
mov ebx, dword [esi + 8]
jmp 0x1018651c
mov eax, dword [ecx]
mov edx, dword [esi + 4]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], ebx
call eax
mov ebx, dword [esi + 8]
mov ecx, dword [esi + 4]
movsx eax, al
mov dword [esi + 0x14], ebx
mov dword [esi + 0x10], ecx
lea ecx, [esi + 0x78]
push eax
call fcn.10192a40
mov ebx, dword [esi + 8]
mov eax, dword [esi + 4]
mov ecx, dword [ebp + 8]
mov dword [esi + 0x14], ebx
mov dword [esi + 0x10], eax
lea eax, [ebp + 0xc]
push eax
call fcn.10176560
mov ebx, dword [esi + 8]
test al, al
jne 0x10186b3a
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x10186736
movzx eax, byte [eax]
jmp 0x10186749
mov eax, dword [ecx]
mov edx, dword [esi + 4]
mov eax, dword [eax + 0x20]
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], ebx
call eax
mov ebx, dword [esi + 8]
test al, al
js 0x10186b3a
mov ecx, dword [ebp + 0x24]
movsx eax, al
mov ecx, dword [ecx + 8]
test byte [ecx + eax*2], 8
je 0x10186b3a
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x1018677c
lea edx, [eax + 1]
mov dword [ecx + 0xc], edx
movzx eax, byte [eax]
jmp 0x1018678f
mov eax, dword [ecx]
mov edx, dword [esi + 4]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], ebx
call eax
mov ebx, dword [esi + 8]
mov ecx, dword [esi + 4]
movsx eax, al
mov dword [esi + 0x14], ebx
mov dword [esi + 0x10], ecx
lea ecx, [esi + 0x78]
push eax
call fcn.10192a40
mov ebx, dword [esi + 8]
jmp 0x10186704
mov ecx, dword [esi + 4]
mov eax, dword [ebp + 0x2c]
mov edx, dword [ebp + 0x28]
mov eax, dword [eax]
cmp eax, dword [edx]
jne case.default.0x1018604c
jmp 0x10186dbe
movzx edi, al
mov ebx, dword [esi + 0xc]
test edi, edi
mov edx, ebx
je 0x10186a12
movzx edx, byte [ebx]
mov dword [esi + 0x28], edx
test dl, dl
mov edx, ebx
js 0x10186a12
mov edx, dword [ebp + 0x24]
mov dword [esi + 0xc], ebx
mov edx, dword [edx + 8]
mov dword [esi + 0x1c], edx
mov edx, dword [esi + 0x28]
mov ebx, dword [esi + 0x1c]
test byte [ebx + edx*2], 8
mov ebx, dword [esi + 0xc]
mov edx, ebx
je 0x10186a12
add edi, ebx
mov edx, ebx
mov dword [esi + 0x28], edi
inc edx
cmp edi, edx
je 0x10186a0d
movzx ebx, byte [edx]
test bl, bl
js 0x10186a0f
mov edi, dword [esi + 0x1c]
test byte [edi + ebx*2], 8
mov edi, dword [esi + 0x28]
jne 0x1018680c
jmp 0x10186a0f
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 4]
mov eax, dword [edx]
mov eax, dword [eax + 0x20]
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 8]
mov dword [esi + 0x14], ecx
mov ecx, edx
call eax
mov ebx, eax
mov eax, dword [ebp + 8]
mov cl, byte [esi + 0x63]
mov eax, dword [eax]
mov edx, dword [eax + 0xc]
mov edi, dword [eax + 0x10]
mov dword [esi + 0xc], eax
test cl, cl
lea eax, [esi + 0x58]
jns 0x10186866
mov eax, dword [esi + 0x58]
cmp byte [eax], bl
jne 0x1018687a
cmp edx, edi
je 0x101868eb
mov eax, dword [esi + 0xc]
inc edx
mov dword [eax + 0xc], edx
jmp 0x10186906
cmp edx, edi
je 0x1018691a
movzx eax, byte [edx]
jmp 0x10186932
cmp ecx, edi
je 0x1018698c
movzx ecx, byte [ecx]
jmp 0x101869a9
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 4]
mov eax, dword [edx]
mov eax, dword [eax + 0x20]
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 8]
mov dword [esi + 0x14], ecx
mov ecx, edx
call eax
mov cl, byte [esi + 0x63]
test cl, cl
lea edx, [esi + 0x58]
jns 0x101868bf
mov edx, dword [esi + 0x58]
cmp byte [edx], al
mov ebx, dword [esi + 8]
jne 0x101868e0
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov edx, dword [eax + 0xc]
cmp edx, dword [eax + 0x10]
je 0x101869d8
inc edx
mov dword [eax + 0xc], edx
jmp 0x101869f0
mov eax, dword [ebp + 0x20]
mov byte [eax], 1
jmp 0x10186b3a
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 4]
mov eax, dword [edx]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 8]
mov dword [esi + 0x14], ecx
mov ecx, edx
call eax
mov cl, byte [esi + 0x63]
test cl, cl
jns 0x1018690f
mov eax, dword [esi + 0x5c]
jmp 0x10186912
movzx eax, cl
mov ebx, dword [esi + 8]
jmp 0x101869fc
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 4]
mov eax, dword [edx]
mov eax, dword [eax + 0x20]
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 8]
mov dword [esi + 0x14], ecx
mov ecx, edx
call eax
mov dl, byte [esi + 0x53]
lea ecx, [esi + 0x48]
test dl, dl
jns 0x1018693f
mov ecx, dword [esi + 0x48]
cmp byte [ecx], al
mov ebx, dword [esi + 8]
jne 0x10186c3e
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x1018695d
inc eax
mov dword [ecx + 0xc], eax
jmp 0x10186973
mov eax, dword [ecx]
mov edx, dword [esi + 4]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], ebx
call eax
mov ebx, dword [esi + 8]
mov dl, byte [esi + 0x53]
mov eax, dword [ebp + 0x20]
mov ecx, dword [esi + 4]
test dl, dl
mov byte [eax], 1
js 0x10186b69
movzx eax, dl
jmp 0x10186b71
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 4]
mov eax, dword [edx]
mov eax, dword [eax + 0x20]
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 8]
mov dword [esi + 0x14], ecx
mov ecx, edx
call eax
mov ecx, eax
mov al, byte [esi + 0x53]
test al, al
lea edx, [esi + 0x48]
jns 0x101869b3
mov edx, dword [esi + 0x48]
cmp byte [edx], cl
mov ebx, dword [esi + 8]
jne 0x10186b3a
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx]
mov edx, dword [ecx + 0xc]
cmp edx, dword [ecx + 0x10]
je 0x10186b46
inc edx
mov dword [ecx + 0xc], edx
jmp 0x10186b5c
mov ecx, dword [eax]
mov edx, dword [ecx + 0x24]
mov ecx, dword [esi + 4]
mov dword [esi + 0x14], ebx
mov dword [esi + 0x10], ecx
mov ecx, eax
call edx
mov ebx, dword [esi + 8]
mov cl, byte [esi + 0x63]
test cl, cl
jns 0x101869f9
mov eax, dword [esi + 0x5c]
jmp 0x101869fc
movzx eax, cl
cmp eax, 1
mov ecx, dword [esi + 4]
mov eax, dword [esi + 0x20]
lea edx, [esi + 0x58]
jmp 0x10186b7a
mov edx, edi
mov ebx, dword [esi + 0xc]
mov edi, edx
sub edi, ebx
movzx ebx, byte [esi + 0x83]
test bl, bl
mov dword [esi + 0x1c], ebx
jns 0x10186a27
mov ebx, dword [esi + 0x7c]
mov dword [esi + 0x88], ebx
cmp edi, ebx
mov ebx, dword [esi + 8]
mov dword [esi + 0x28], edi
ja 0x10186a6f
cmp byte [esi + 0x1c], 0
lea ebx, [esi + 0x78]
jns 0x10186a43
mov ebx, dword [esi + 0x78]
mov edi, dword [esi + 0x28]
test edi, edi
je 0x10186a65
add ebx, dword [esi + 0x88]
mov dword [esi + 0x1c], ebx
sub ebx, edi
mov edi, dword [esi + 0xc]
mov ah, byte [ebx]
cmp ah, byte [edi]
jne 0x10186a6c
inc ebx
inc edi
cmp ebx, dword [esi + 0x1c]
jne 0x10186a58
mov ebx, dword [esi + 8]
mov edi, edx
jmp 0x10186a72
mov ebx, dword [esi + 8]
mov edi, dword [esi + 0xc]
test al, al
movzx eax, al
lea edx, [esi + 0x38]
cmovs eax, dword [esi + 0x3c]
cmovns ecx, edx
add eax, ecx
cmp edi, eax
je 0x10186b18
mov eax, dword [esi + 4]
mov ecx, dword [ebp + 8]
mov dword [esi + 0x14], ebx
mov dword [esi + 0x238], 3
mov dword [esi + 0x10], eax
lea eax, [ebp + 0xc]
push eax
mov dword [esi + 0xc], edi
call fcn.10176560
mov edi, dword [esi + 0xc]
mov ebx, dword [esi + 8]
test al, al
jne 0x10186b18
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x10186ac9
movzx eax, byte [eax]
jmp 0x10186adf
mov eax, dword [ecx]
mov edx, dword [esi + 4]
mov eax, dword [eax + 0x20]
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], ebx
call eax
mov edi, dword [esi + 0xc]
mov ebx, dword [esi + 8]
cmp byte [edi], al
jne 0x10186b18
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x10186af6
inc eax
mov dword [ecx + 0xc], eax
jmp 0x10186b0c
mov eax, dword [ecx]
mov edx, dword [esi + 4]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], ebx
call eax
mov edi, dword [esi + 0xc]
mov ebx, dword [esi + 8]
mov al, byte [esi + 0x43]
mov ecx, dword [esi + 0x38]
inc edi
jmp 0x10186a72
bt dword [ebp + 0x18], 9
jae 0x10186b3a
movzx eax, byte [esi + 0x43]
lea ecx, [esi + 0x38]
test al, al
jns 0x10186b30
mov ecx, dword [esi + 0x38]
mov eax, dword [esi + 0x3c]
add ecx, eax
cmp edi, ecx
jne 0x10186c3e
mov ecx, dword [esi + 4]
mov eax, dword [esi + 0x18]
inc eax
jmp 0x10185ffc
mov eax, dword [ecx]
mov edx, dword [esi + 4]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], ebx
call eax
mov ebx, dword [esi + 8]
mov al, byte [esi + 0x53]
mov ecx, dword [ebp + 0x20]
test al, al
mov byte [ecx], 1
mov ecx, dword [esi + 4]
jns 0x10186b6e
mov eax, dword [esi + 0x4c]
jmp 0x10186b71
movzx eax, al
cmp eax, 1
mov eax, dword [esi + 0x20]
lea edx, [esi + 0x48]
cmova eax, edx
mov dword [esi + 0x20], eax
jmp case.default.0x1018604c
cmp dword [esi + 0x20], 0
je 0x10186cdf
mov ecx, dword [esi + 0x20]
movzx eax, byte [ecx + 0xb]
test al, al
jns 0x10186b9a
mov eax, dword [ecx + 4]
mov ecx, dword [esi + 4]
cmp dword [esi + 0x8c], eax
jae 0x10186cdf
mov dword [esi + 0x10], ecx
mov ecx, dword [ebp + 8]
lea eax, [ebp + 0xc]
mov dword [esi + 0x14], ebx
mov dword [esi + 0x238], 3
push eax
call fcn.10176560
mov ebx, dword [esi + 8]
test al, al
jne 0x10186c3e
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x10186bde
movzx eax, byte [eax]
jmp 0x10186bf1
mov eax, dword [ecx]
mov edx, dword [esi + 4]
mov eax, dword [eax + 0x20]
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], ebx
call eax
mov ebx, dword [esi + 8]
mov ecx, dword [esi + 0x20]
cmp byte [ecx + 0xb], 0
jns 0x10186bff
mov ecx, dword [esi + 0x20]
mov ecx, dword [ecx]
mov edx, dword [esi + 0x8c]
cmp byte [ecx + edx], al
jne 0x10186c3e
mov eax, dword [ebp + 8]
inc dword [esi + 0x8c]
mov ecx, dword [eax]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x10186c26
inc eax
mov dword [ecx + 0xc], eax
jmp 0x10186b8c
mov eax, dword [ecx]
mov edx, dword [esi + 4]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], ebx
call eax
mov ebx, dword [esi + 8]
jmp 0x10186b8c
mov eax, dword [ebp + 0x1c]
mov edi, ebx
or byte [eax], 4
mov dword [esi + 0xc], 0
mov ecx, dword [esi + 4]
cmp byte [esi + 0x83], 0
mov ebx, ecx
jns 0x10186c68
push dword [esi + 0x78]
call fcn.101e057e
mov ecx, ebx
add esp, 4
cmp byte [esi + 0x53], 0
jns 0x10186c7b
push dword [esi + 0x48]
call fcn.101e057e
mov ecx, ebx
add esp, 4
cmp byte [esi + 0x63], 0
jns 0x10186c8e
push dword [esi + 0x58]
call fcn.101e057e
mov ecx, ebx
add esp, 4
cmp byte [esi + 0x43], 0
jns 0x10186ca1
push dword [esi + 0x38]
call fcn.101e057e
mov ecx, ebx
add esp, 4
cmp byte [esi + 0x73], 0
jns 0x10186cb4
push dword [esi + 0x68]
call fcn.101e057e
mov ecx, ebx
add esp, 4
test edi, edi
je 0x10186cc8
mov dword [esi + 0x238], 2
push edi
call ecx
add esp, 4
mov eax, dword [esi + 0x230]
mov dword fs:[0], eax
mov eax, dword [esi + 0xc]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp ebx, dword [esi + 0x24]
mov al, 1
mov dword [esi + 0xc], eax
je 0x10186d5c
movzx ecx, byte [esi + 0x73]
test cl, cl
mov eax, ecx
jns 0x10186cf6
mov eax, dword [esi + 0x6c]
mov edx, dword [esi + 0x24]
mov edi, ebx
sub edx, ebx
cmp edx, 5
jl 0x10186c4d
test eax, eax
je 0x10186c4d
mov eax, dword [esi + 0x24]
add eax, 0xfffffffc
mov ebx, eax
cmp eax, edi
jbe 0x10186d36
mov eax, ebx
mov ecx, edi
mov edx, dword [ecx]
mov edi, dword [eax]
mov dword [ecx], edi
mov dword [eax], edx
add ecx, 4
add eax, 0xfffffffc
cmp ecx, eax
jb 0x10186d1e
mov cl, byte [esi + 0x73]
mov edi, dword [esi + 8]
test cl, cl
jns 0x10186d40
mov eax, dword [esi + 0x68]
mov dword [esi + 0x64], eax
mov eax, dword [esi + 0x64]
mov al, byte [eax]
mov edx, eax
dec dl
cmp dl, 0x7e
setb dl
cmp ebx, edi
jbe 0x10186d9b
test cl, cl
jns 0x10186d63
mov ecx, dword [esi + 0x6c]
jmp 0x10186d66
mov edi, ebx
jmp 0x10186c50
movzx ecx, cl
add ecx, dword [esi + 0x64]
test dl, 1
je 0x10186d75
movzx eax, al
cmp dword [edi], eax
jne 0x10186da9
mov edx, dword [esi + 0x64]
mov eax, ecx
sub eax, edx
cmp eax, 1
lea eax, [edx + 1]
cmovg edx, eax
add edi, 4
mov al, byte [edx]
mov dword [esi + 0x64], edx
mov edx, eax
dec dl
cmp dl, 0x7e
setb dl
cmp edi, ebx
jb 0x10186d69
test dl, dl
je 0x10186db6
mov ecx, dword [ebx]
movzx eax, al
dec ecx
cmp ecx, eax
jb 0x10186db6
mov eax, dword [ebp + 0x1c]
or byte [eax], 4
mov dword [esi + 0xc], 0
mov edi, dword [esi + 8]
jmp 0x10186c4d
mov eax, dword [ebp + 0x1c]
mov edi, ebx
or byte [eax], 4
mov dword [esi + 0xc], 0
jmp 0x10186c50
mov eax, dword [esi + 4]
mov dword [esi + 0x14], ebx
mov dword [esi + 0x10], eax
call fcn.10192420
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], ecx
call fcn.10192420
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], ecx
call fcn.10192420
mov eax, dword [esi + 4]
mov dword [esi + 0x14], edi
mov dword [esi + 0x10], eax
call fcn.10192420
push ebp
sub esp, 0x28
lea esi, [ebp - 0x23c]
mov ebp, dword [esi + 0x228]
call fcn.101e1e6f
nop word cs:[eax + eax]
nop
push ebp
sub esp, 0x28
lea esi, [ebp - 0x23c]
mov ebp, dword [esi + 0x228]
mov edi, dword [esi + 0x14]
mov ebx, dword [esi + 0x10]
cmp byte [esi + 0x83], 0
jns 0x10186e5a
push dword [esi + 0x78]
call fcn.101e057e
add esp, 4
cmp byte [esi + 0x53], 0
jns 0x10186e6b
push dword [esi + 0x48]
call fcn.101e057e
add esp, 4
cmp byte [esi + 0x63], 0
jns 0x10186e7c
push dword [esi + 0x58]
call fcn.101e057e
add esp, 4
cmp byte [esi + 0x43], 0
jns 0x10186e8d
push dword [esi + 0x38]
call fcn.101e057e
add esp, 4
cmp byte [esi + 0x73], 0
jns 0x10186e9e
push dword [esi + 0x68]
call fcn.101e057e
add esp, 4
test edi, edi
je 0x10186ea8
push edi
call ebx
add esp, 4
add esp, 0x28
pop ebp
ret