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

Disassembly:
push 0xffffffffffffffff
push 0x101653a4
mov eax, dword fs:[0]
push eax
sub esp, 0x120
mov eax, dword [0x101b7324]
xor eax, esp
mov dword [esp + 0x11c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101b7324]
xor eax, esp
push eax
lea eax, [esp + 0x134]
mov dword fs:[0], eax
mov eax, dword [esp + 0x160]
mov ebx, dword [esp + 0x144]
mov edi, dword [esp + 0x148]
mov esi, dword [esp + 0x15c]
xor ebp, ebp
mov dword [esp + 0x20], ebp
push ebp
push 0x1016aa44
lea ecx, [esp + 0xbc]
mov dword [esp + 0x40], ebx
mov dword [esp + 0xe0], eax
mov dword [esp + 0xd4], 0xf
mov dword [esp + 0xd0], ebp
mov byte [esp + 0xc0], 0
call fcn.100099a0
mov dword [esp + 0x13c], 1
fld qword [0x1016b9a0]
fld qword [esp + 0x164]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jnp 0x100875ad
fld1
fcompp
fnstsw ax
test ah, 5
jnp 0x100875af
cmp dword [esp + 0x16c], 3
ja 0x10087568
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x20]
push eax
mov eax, dword [esp + 0x164]
lea ecx, [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x164]
lea edx, [esp + 0x60]
push edx
mov edx, dword [esp + 0x164]
push eax
mov eax, dword [esp + 0x164]
push ecx
push edx
push eax
push edi
mov dword [esp + 0x40], ebp
call fcn.10044740
add esp, 0x28
test eax, eax
jne 0x100862a2
lea ecx, [esp + 0xb4]
push ecx
mov ecx, ebx
call fcn.10009a70
mov dword [esp + 0x20], 1
mov byte [esp + 0x13c], 0
lea ecx, [esp + 0xb4]
call fcn.10006120
jmp 0x10087610
fld1
xor ebx, ebx
fsub qword [esp + 0x164]
mov dword [esp + 0x44], ebx
fnstcw word [esp + 0x14]
mov dword [esp + 0x48], ebx
fmul qword [0x1016b950]
mov dword [esp + 0x4c], ebx
movzx eax, word [esp + 0x14]
or eax, 0xc00
mov dword [esp + 0x128], eax
fldcw word [esp + 0x128]
fistp qword [esp + 0x128]
mov edi, dword [esp + 0x128]
fldcw word [esp + 0x14]
mov byte [esp + 0x13c], 2
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov byte [esp + 0x13c], 3
lea ecx, [esp + 0x8c]
call fcn.100f1821
mov byte [esp + 0x13c], 4
push ebx
lea edx, [esp + 0x90]
push edx
push 0x1016b5b4
push esi
call fcn.1004a8d0
mov ebp, eax
add esp, 0x10
xor esi, esi
test ebp, ebp
mov bl, 0x78
jle 0x10086414
test esi, esi
mov dword [esp + 0xd0], 0
mov byte [esp + 0x128], 0x25
mov byte [esp + 0x129], bl
mov byte [esp + 0x12a], 0x2d
mov byte [esp + 0x12b], 0x25
mov byte [esp + 0x12c], bl
mov byte [esp + 0x12d], 0
jl 0x100864ec
cmp esi, dword [esp + 0x94]
jge 0x100864ec
mov eax, dword [esp + 0x90]
mov eax, dword [eax + esi*4]
lea ecx, [esp + 0xd0]
push ecx
lea edx, [esp + 0xec]
push edx
lea ecx, [esp + 0x130]
push ecx
push eax
call fcn.10101de5
mov eax, dword [esp + 0xe0]
movzx edx, byte [esp + 0xe2]
movzx ecx, ah
add edx, edi
add ecx, edi
mov dword [esp + 0xfc], edx
and eax, 0xff
add esp, 0x10
lea edx, [esp + 0xe8]
mov dword [esp + 0xf0], ecx
add eax, edi
push edx
lea ecx, [esp + 0x44]
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], 0
call fcn.1006f6b0
add esi, 1
cmp esi, ebp
jl 0x10086342
lea ecx, [esp + 0xa0]
call fcn.100f1821
mov byte [esp + 0x13c], 5
mov ecx, dword [esp + 0xd8]
xor esi, esi
push esi
lea eax, [esp + 0xa4]
push eax
push 0x1016b5d0
push ecx
call fcn.1004a8d0
add esp, 0x10
cmp eax, esi
mov dword [esp + 0x128], eax
mov dword [esp + 0x14], esi
jle 0x100866c6
jmp 0x10086460
xor ebp, ebp
mov dword [esp + 0x10c], ebp
mov dword [esp + 0x110], ebp
mov dword [esp + 0x114], ebp
mov byte [esp + 0x13c], 7
lea ecx, [esp + 0x78]
call fcn.100f1821
mov byte [esp + 0x13c], 8
cmp esi, ebp
jl 0x100864ec
cmp esi, dword [esp + 0xa8]
jge 0x100864ec
mov edx, dword [esp + 0xa4]
mov eax, dword [edx + esi*4]
push ebp
lea ecx, [esp + 0x7c]
push ecx
push 0x1016b5b4
push eax
call fcn.1004a8d0
mov ebp, eax
add esp, 0x10
cmp ebp, 3
jge 0x100864f1
mov byte [esp + 0x13c], 7
lea ecx, [esp + 0x78]
call fcn.100f1b69
mov byte [esp + 0x13c], 5
lea ecx, [esp + 0x108]
call fcn.10062f30
jmp 0x100866b0
jmp fcn.100ee5b6
cmp dword [esp + 0x80], 0
jle 0x100864ec
mov edx, dword [esp + 0x7c]
mov eax, dword [edx]
lea ecx, [esp + 0x118]
push ecx
push 0x1016b6b8
push eax
call fcn.10101de5
add esp, 0xc
cmp dword [esp + 0x80], 1
jle 0x100864ec
mov edx, dword [esp + 0x7c]
mov eax, dword [edx + 4]
lea ecx, [esp + 0x11c]
push ecx
push 0x1016b6b8
push eax
call fcn.10101de5
mov esi, 2
add esp, 0xc
cmp ebp, esi
jle 0x10086676
jmp 0x10086550
xor edx, edx
cmp esi, edx
mov dword [esp + 0xd0], edx
jl 0x100864ec
cmp esi, dword [esp + 0x80]
jge 0x100864ec
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax + esi*4]
cmp byte [ecx], 0x2d
jne 0x100865cc
mov byte [esp + 0xe6], dl
lea edx, [esp + 0xd0]
push edx
lea ecx, [esp + 0xec]
push ecx
lea edx, [esp + 0xe8]
mov dword [esp + 0x100], 1
mov byte [esp + 0xe8], 0x2d
mov byte [esp + 0xe9], 0x25
mov byte [esp + 0xea], bl
mov byte [esp + 0xeb], 0x2d
mov byte [esp + 0xec], 0x25
mov byte [esp + 0xed], bl
push edx
jmp 0x10086619
lea ecx, [esp + 0xd0]
push ecx
mov dword [esp + 0xfc], edx
lea edx, [esp + 0xec]
push edx
lea ecx, [esp + 0xe0]
mov byte [esp + 0xe0], 0x25
mov byte [esp + 0xe1], bl
mov byte [esp + 0xe2], 0x2d
mov byte [esp + 0xe3], 0x25
mov byte [esp + 0xe4], bl
mov byte [esp + 0xe5], 0
push ecx
mov eax, dword [eax + esi*4]
push eax
call fcn.10101de5
mov eax, dword [esp + 0xe0]
movzx edx, byte [esp + 0xe2]
movzx ecx, ah
add edx, edi
add ecx, edi
mov dword [esp + 0xfc], edx
and eax, 0xff
add esp, 0x10
lea edx, [esp + 0xe8]
mov dword [esp + 0xf0], ecx
add eax, edi
push edx
lea ecx, [esp + 0x10c]
mov dword [esp + 0xf8], eax
call fcn.1006f6b0
add esi, 1
cmp esi, ebp
jl 0x10086550
lea eax, [esp + 0x108]
push eax
lea ecx, [esp + 0x28]
call fcn.10085880
mov byte [esp + 0x13c], 7
lea ecx, [esp + 0x78]
call fcn.100f1b69
mov byte [esp + 0x13c], 5
lea ecx, [esp + 0x108]
call fcn.10062f30
mov esi, dword [esp + 0x14]
add esi, 1
cmp esi, dword [esp + 0x128]
mov dword [esp + 0x14], esi
jl 0x10086460
xor esi, esi
push 0x2ee6
call fcn.100ff548
mov edi, eax
push 0x1772
mov dword [esp + 0x130], edi
call fcn.100ff548
mov ebx, eax
push 0x1772
mov dword [esp + 0xec], ebx
call fcn.100ff548
add esp, 0xc
cmp edi, esi
mov ebp, eax
mov dword [esp + 0xd8], ebp
je 0x10087457
cmp ebx, esi
je 0x1008744e
cmp ebp, esi
je 0x1008744e
push 0x2ee6
push esi
push edi
call fcn.10100550
push 0x1772
push esi
push ebx
call fcn.10100550
push 0x1772
push esi
push ebp
call fcn.10100550
mov eax, dword [esp + 0x190]
add esp, 0x24
cmp eax, esi
jne 0x10086a21
xor ebp, ebp
cmp dword [esp + 0x58], esi
mov dword [esp + 0x14], ebp
jle 0x100872a2
mov eax, dword [esp + 0x54]
xor ebx, ebx
test eax, eax
mov dword [esp + 0xd0], ebx
jle 0x10086a0b
mov ecx, ebp
imul ecx, dword [esp + 0x1c]
add ecx, dword [esp + 0x18]
mov byte [ecx + ebx*4 + 3], 0
mov edx, dword [ecx + ebx*4]
lea eax, [ecx + ebx*4]
push edx
lea edi, [esp + 0x44]
call fcn.100556c0
add esp, 4
test eax, eax
je 0x100869ea
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x1c]
push ecx
push ebp
push ebx
push edx
push eax
lea esi, [esp + 0x3c]
call fcn.10055ea0
add esp, 0x18
test eax, eax
je 0x100869ea
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
xor eax, eax
mov dword [esp + 0x109], eax
mov dword [esp + 0x10d], eax
mov dword [esp + 0x111], eax
mov dword [esp + 0x115], eax
mov dword [esp + 0x119], eax
mov dword [esp + 0x11d], eax
mov dword [esp + 0x121], eax
mov word [esp + 0x125], ax
mov byte [esp + 0x127], al
mov byte [esp + 0xe8], al
mov dword [esp + 0xe9], eax
mov dword [esp + 0xed], eax
mov dword [esp + 0xf1], eax
mov dword [esp + 0xf5], eax
mov dword [esp + 0xf9], eax
mov dword [esp + 0xfd], eax
mov dword [esp + 0x101], eax
mov word [esp + 0x105], ax
mov byte [esp + 0x107], al
mov eax, dword [esp + 0xe0]
lea edi, [ebx + ecx]
mov byte [esp + 0x108], 0
add ebp, edx
lea ecx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10086872
sub eax, ecx
mov esi, eax
mov eax, dword [esp + 0xd8]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10086890
sub eax, edx
push edi
mov ebx, eax
lea eax, [esp + 0x10c]
push 0x1016b6b8
push eax
call fcn.10101330
push ebp
lea ecx, [esp + 0xf8]
push 0x1016b6b8
push ecx
call fcn.10101330
add esp, 0x18
test esi, esi
lea eax, [esp + 0x108]
jne 0x100868ee
mov edx, dword [esp + 0xe0]
mov ecx, eax
sub edx, ecx
lea esp, [esp]
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x100868e0
jmp 0x1008695a
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x100868f1
sub eax, edx
add eax, esi
cmp eax, 0x1770
jae 0x1008695a
mov ebp, dword [esp + 0xe0]
mov edi, ebp
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10086911
mov dx, word [0x1016b5d0]
lea eax, [esp + 0x108]
mov word [edi], dx
mov ecx, eax
mov edi, edi
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10086930
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10086942
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
test ebx, ebx
lea eax, [esp + 0xe8]
jne 0x1008697e
mov edx, dword [esp + 0xd8]
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x10086970
jmp 0x100869ea
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10086981
sub eax, edx
add eax, ebx
cmp eax, 0x1770
jae 0x100869ea
mov ebx, dword [esp + 0xd8]
mov edi, ebx
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x100869a1
mov dx, word [0x1016b5d0]
lea eax, [esp + 0xe8]
mov word [edi], dx
mov ecx, eax
mov edi, edi
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x100869c0
mov edi, ebx
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x100869d2
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ebx, dword [esp + 0xd0]
mov eax, dword [esp + 0x54]
mov ebp, dword [esp + 0x14]
add ebx, 1
cmp ebx, eax
mov dword [esp + 0xd0], ebx
jl 0x10086775
add ebp, 1
cmp ebp, dword [esp + 0x58]
mov dword [esp + 0x14], ebp
jl 0x10086764
jmp 0x100872a2
cmp eax, 1
jne 0x10086ced
mov ebp, dword [esp + 0x58]
add ebp, 0xffffffff
cmp ebp, esi
mov dword [esp + 0x14], ebp
jl 0x100872a2
mov eax, dword [esp + 0x54]
xor ebx, ebx
test eax, eax
mov dword [esp + 0xd0], ebx
jle 0x10086cdb
mov eax, ebp
imul eax, dword [esp + 0x1c]
add eax, dword [esp + 0x18]
mov byte [eax + ebx*4 + 3], 0
mov ecx, dword [eax + ebx*4]
lea eax, [eax + ebx*4]
push ecx
lea edi, [esp + 0x44]
call fcn.100556c0
add esp, 4
test eax, eax
je 0x10086cba
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x1c]
push eax
push ebp
push ebx
push ecx
push edx
lea esi, [esp + 0x3c]
call fcn.10055ea0
add esp, 0x18
test eax, eax
je 0x10086cba
mov ecx, dword [esp + 0x34]
xor eax, eax
mov dword [esp + 0x109], eax
mov dword [esp + 0x10d], eax
mov dword [esp + 0x111], eax
mov dword [esp + 0x115], eax
mov dword [esp + 0x119], eax
mov dword [esp + 0x11d], eax
mov dword [esp + 0x121], eax
mov word [esp + 0x125], ax
mov byte [esp + 0x127], al
mov byte [esp + 0xe8], al
mov dword [esp + 0xe9], eax
mov dword [esp + 0xed], eax
mov dword [esp + 0xf1], eax
mov dword [esp + 0xf5], eax
mov dword [esp + 0xf9], eax
mov dword [esp + 0xfd], eax
mov dword [esp + 0x101], eax
mov word [esp + 0x105], ax
mov byte [esp + 0x107], al
mov eax, dword [esp + 0x3c]
lea edi, [ebx + eax]
mov eax, dword [esp + 0xe0]
add ebp, ecx
mov byte [esp + 0x108], 0
lea ecx, [eax + 1]
nop
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10086b50
sub eax, ecx
mov esi, eax
mov eax, dword [esp + 0xd8]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10086b67
sub eax, edx
push edi
lea edx, [esp + 0x10c]
push 0x1016b6b8
push edx
mov ebx, eax
call fcn.10101330
push ebp
lea eax, [esp + 0xf8]
push 0x1016b6b8
push eax
call fcn.10101330
add esp, 0x18
test esi, esi
lea eax, [esp + 0x108]
jne 0x10086bc1
mov edx, dword [esp + 0xe0]
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x10086bb3
jmp 0x10086c2b
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10086bc4
sub eax, edx
add eax, esi
cmp eax, 0x1770
jae 0x10086c2b
mov ebp, dword [esp + 0xe0]
mov edi, ebp
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10086be4
mov dx, word [0x1016b5d0]
lea eax, [esp + 0x108]
mov word [edi], dx
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10086c01
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10086c13
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
test ebx, ebx
lea eax, [esp + 0xe8]
jne 0x10086c4f
mov edx, dword [esp + 0xd8]
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x10086c41
jmp 0x10086cba
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10086c52
sub eax, edx
add eax, ebx
cmp eax, 0x1770
jae 0x10086cba
mov ebx, dword [esp + 0xd8]
mov edi, ebx
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10086c72
mov dx, word [0x1016b5d0]
lea eax, [esp + 0xe8]
mov word [edi], dx
mov ecx, eax
nop
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10086c90
mov edi, ebx
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10086ca2
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ebx, dword [esp + 0xd0]
mov eax, dword [esp + 0x54]
mov ebp, dword [esp + 0x14]
add ebx, 1
cmp ebx, eax
mov dword [esp + 0xd0], ebx
jl 0x10086a52
sub ebp, 1
mov dword [esp + 0x14], ebp
jns 0x10086a41
jmp 0x100872a2
cmp eax, 2
jne 0x10086fcb
xor ebp, ebp
cmp dword [esp + 0x58], esi
mov dword [esp + 0x14], ebp
jle 0x100872a2
jmp 0x10086d10
mov ebx, dword [esp + 0x54]
add ebx, 0xffffffff
mov dword [esp + 0xd0], ebx
js 0x10086fb5
mov eax, ebp
imul eax, dword [esp + 0x1c]
add eax, dword [esp + 0x18]
mov byte [eax + ebx*4 + 3], 0
mov ecx, dword [eax + ebx*4]
lea eax, [eax + ebx*4]
push ecx
lea edi, [esp + 0x44]
call fcn.100556c0
add esp, 4
test eax, eax
je 0x10086f9a
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x1c]
push eax
push ebp
push ebx
push ecx
push edx
lea esi, [esp + 0x3c]
call fcn.10055ea0
add esp, 0x18
test eax, eax
je 0x10086f9a
mov ecx, dword [esp + 0x34]
xor eax, eax
mov dword [esp + 0x109], eax
mov dword [esp + 0x10d], eax
mov dword [esp + 0x111], eax
mov dword [esp + 0x115], eax
mov dword [esp + 0x119], eax
mov dword [esp + 0x11d], eax
mov dword [esp + 0x121], eax
mov word [esp + 0x125], ax
mov byte [esp + 0x127], al
mov byte [esp + 0xe8], al
mov dword [esp + 0xe9], eax
mov dword [esp + 0xed], eax
mov dword [esp + 0xf1], eax
mov dword [esp + 0xf5], eax
mov dword [esp + 0xf9], eax
mov dword [esp + 0xfd], eax
mov dword [esp + 0x101], eax
mov word [esp + 0x105], ax
mov byte [esp + 0x107], al
mov eax, dword [esp + 0x3c]
lea edi, [ebx + eax]
mov eax, dword [esp + 0xe0]
add ebp, ecx
mov byte [esp + 0x108], 0
lea ecx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10086e21
sub eax, ecx
mov esi, eax
mov eax, dword [esp + 0xd8]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10086e38
sub eax, edx
push edi
lea edx, [esp + 0x10c]
push 0x1016b6b8
push edx
mov ebx, eax
call fcn.10101330
push ebp
lea eax, [esp + 0xf8]
push 0x1016b6b8
push eax
call fcn.10101330
add esp, 0x18
test esi, esi
lea eax, [esp + 0x108]
jne 0x10086e95
mov edx, dword [esp + 0xe0]
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x10086e84
jmp 0x10086eff
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10086e98
sub eax, edx
add eax, esi
cmp eax, 0x1770
jae 0x10086eff
mov ebp, dword [esp + 0xe0]
mov edi, ebp
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10086eb8
mov dx, word [0x1016b5d0]
lea eax, [esp + 0x108]
mov word [edi], dx
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10086ed5
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10086ee7
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
test ebx, ebx
lea eax, [esp + 0xe8]
jne 0x10086f26
mov edx, dword [esp + 0xd8]
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x10086f15
jmp 0x10086f9a
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10086f30
sub eax, edx
add eax, ebx
cmp eax, 0x1770
jae 0x10086f9a
mov ebx, dword [esp + 0xd8]
mov edi, ebx
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10086f50
mov dx, word [0x1016b5d0]
lea eax, [esp + 0xe8]
mov word [edi], dx
mov ecx, eax
lea ecx, [ecx]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10086f70
mov edi, ebx
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10086f82
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ebx, dword [esp + 0xd0]
mov ebp, dword [esp + 0x14]
sub ebx, 1
mov dword [esp + 0xd0], ebx
jns 0x10086d24
add ebp, 1
cmp ebp, dword [esp + 0x58]
mov dword [esp + 0x14], ebp
jl 0x10086d10
jmp 0x100872a2
cmp eax, 3
jne 0x100872a2
mov ebx, dword [esp + 0x58]
add ebx, 0xffffffff
mov dword [esp + 0x14], ebx
js 0x100872a2
jmp 0x10086ff0
mov ebp, dword [esp + 0x54]
add ebp, 0xffffffff
mov dword [esp + 0xd0], ebp
js 0x10087295
mov eax, ebx
imul eax, dword [esp + 0x1c]
add eax, dword [esp + 0x18]
mov byte [eax + ebp*4 + 3], 0
mov ecx, dword [eax + ebp*4]
lea eax, [eax + ebp*4]
push ecx
lea edi, [esp + 0x44]
call fcn.100556c0
add esp, 4
test eax, eax
je 0x1008727a
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x1c]
push eax
push ebx
push ebp
push ecx
push edx
lea esi, [esp + 0x3c]
call fcn.10055ea0
add esp, 0x18
test eax, eax
je 0x1008727a
mov ecx, dword [esp + 0x34]
xor eax, eax
mov dword [esp + 0x109], eax
mov dword [esp + 0x10d], eax
mov dword [esp + 0x111], eax
mov dword [esp + 0x115], eax
mov dword [esp + 0x119], eax
mov dword [esp + 0x11d], eax
mov dword [esp + 0x121], eax
mov word [esp + 0x125], ax
mov byte [esp + 0x127], al
mov byte [esp + 0xe8], al
mov dword [esp + 0xe9], eax
mov dword [esp + 0xed], eax
mov dword [esp + 0xf1], eax
mov dword [esp + 0xf5], eax
mov dword [esp + 0xf9], eax
mov dword [esp + 0xfd], eax
mov dword [esp + 0x101], eax
mov word [esp + 0x105], ax
mov byte [esp + 0x107], al
mov eax, dword [esp + 0x3c]
lea edi, [eax + ebp]
mov eax, dword [esp + 0xe0]
lea ebp, [ebx + ecx]
mov byte [esp + 0x108], 0
lea ecx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10087102
sub eax, ecx
mov esi, eax
mov eax, dword [esp + 0xd8]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10087120
sub eax, edx
push edi
lea edx, [esp + 0x10c]
push 0x1016b6b8
push edx
mov ebx, eax
call fcn.10101330
push ebp
lea eax, [esp + 0xf8]
push 0x1016b6b8
push eax
call fcn.10101330
add esp, 0x18
test esi, esi
lea eax, [esp + 0x108]
jne 0x1008717e
mov edx, dword [esp + 0xe0]
mov ecx, eax
sub edx, ecx
lea esp, [esp]
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x10087170
jmp 0x100871ea
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10087181
sub eax, edx
add eax, esi
cmp eax, 0x1770
jae 0x100871ea
mov ebp, dword [esp + 0xe0]
mov edi, ebp
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x100871a1
mov dx, word [0x1016b5d0]
lea eax, [esp + 0x108]
mov word [edi], dx
mov ecx, eax
mov edi, edi
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x100871c0
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x100871d2
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
test ebx, ebx
lea eax, [esp + 0xe8]
jne 0x1008720e
mov edx, dword [esp + 0xd8]
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x10087200
jmp 0x1008727a
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10087211
sub eax, edx
add eax, ebx
cmp eax, 0x1770
jae 0x1008727a
mov ebx, dword [esp + 0xd8]
mov edi, ebx
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10087231
mov dx, word [0x1016b5d0]
lea eax, [esp + 0xe8]
mov word [edi], dx
mov ecx, eax
mov edi, edi
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10087250
mov edi, ebx
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10087262
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ebp, dword [esp + 0xd0]
mov ebx, dword [esp + 0x14]
sub ebp, 1
mov dword [esp + 0xd0], ebp
jns 0x10087004
sub ebx, 1
mov dword [esp + 0x14], ebx
jns 0x10086ff0
mov ecx, dword [esp + 0xe0]
cmp byte [ecx], 0
je 0x1008731d
mov esi, dword [esp + 0x128]
mov al, 0x73
mov byte [esp + 0xd1], al
mov byte [esp + 0xd4], al
mov eax, dword [esp + 0xd8]
push eax
push ecx
lea ecx, [esp + 0xd8]
push ecx
push esi
mov byte [esp + 0xe0], 0x25
mov byte [esp + 0xe2], 0x7c
mov byte [esp + 0xe3], 0x25
mov byte [esp + 0xe5], 0
call fcn.10101330
mov eax, esi
add esp, 0x10
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10087304
sub eax, edx
push eax
push esi
lea ecx, [esp + 0xbc]
call fcn.100099a0
mov edx, dword [esp + 0x128]
push edx
call fcn.100ff60b
mov eax, dword [esp + 0xe4]
push eax
call fcn.100ff60b
mov ecx, dword [esp + 0xe0]
push ecx
call fcn.100ff60b
mov edx, dword [esp + 0x24]
push edx
call fcn.100ff60b
mov esi, dword [esp + 0x48]
add esp, 0x10
xor edi, edi
push 0xffffffffffffffff
push edi
lea eax, [esp + 0xbc]
mov ebx, 0xf
mov dword [esp + 0x20], edi
mov dword [esi + 0x18], ebx
mov dword [esi + 0x14], edi
push eax
mov ecx, esi
mov byte [esi + 4], 0
call fcn.10009790
mov dword [esp + 0x20], 1
mov byte [esp + 0x13c], 4
lea ecx, [esp + 0xa0]
call fcn.100f1b69
mov byte [esp + 0x13c], 3
lea ecx, [esp + 0x8c]
call fcn.100f1b69
mov byte [esp + 0x13c], 2
mov eax, dword [esp + 0x28]
cmp eax, edi
je 0x100873de
mov ecx, dword [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x28]
push edx
push ecx
push eax
call fcn.10082ed0
mov edx, dword [esp + 0x38]
push edx
call fcn.100ee4bd
add esp, 0x14
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
mov byte [esp + 0x13c], 1
mov eax, dword [esp + 0x44]
cmp eax, edi
je 0x10087403
push eax
call fcn.100ee4bd
add esp, 4
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edi
mov byte [esp + 0x13c], 0
cmp dword [esp + 0xcc], 0x10
jb 0x10087431
mov eax, dword [esp + 0xb8]
push eax
call fcn.100ee4bd
add esp, 4
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xc8], edi
mov byte [esp + 0xb8], 0
mov eax, esi
jmp 0x10087612
push edi
call fcn.100ff60b
add esp, 4
cmp ebx, esi
je 0x10087464
push ebx
call fcn.100ff60b
add esp, 4
cmp ebp, esi
je 0x10087471
push ebp
call fcn.100ff60b
add esp, 4
mov edi, dword [esp + 0x38]
push 0xffffffffffffffff
push esi
lea ecx, [esp + 0xbc]
mov ebx, 0xf
push ecx
mov dword [edi + 0x18], ebx
mov dword [edi + 0x14], esi
mov ecx, edi
mov byte [edi + 4], 0
call fcn.10009790
mov dword [esp + 0x20], 1
mov byte [esp + 0x13c], 4
lea ecx, [esp + 0xa0]
call fcn.100f1b69
mov byte [esp + 0x13c], 3
lea ecx, [esp + 0x8c]
call fcn.100f1b69
mov byte [esp + 0x13c], 2
mov eax, dword [esp + 0x28]
cmp eax, esi
je 0x100874f8
mov edx, dword [esp + 0x38]
push edx
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x28]
push ecx
push edx
push eax
call fcn.10082ed0
mov eax, dword [esp + 0x38]
push eax
call fcn.100ee4bd
add esp, 0x14
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], esi
mov byte [esp + 0x13c], 1
mov eax, dword [esp + 0x44]
cmp eax, esi
je 0x1008751d
push eax
call fcn.100ee4bd
add esp, 4
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
mov byte [esp + 0x13c], 0
cmp dword [esp + 0xcc], 0x10
jb 0x1008754b
mov ecx, dword [esp + 0xb8]
push ecx
call fcn.100ee4bd
add esp, 4
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xc8], esi
mov byte [esp + 0xb8], 0
mov eax, edi
jmp 0x10087612
push 0xffffffffffffffff
push ebp
lea edx, [esp + 0xbc]
mov esi, 0xf
mov dword [ebx + 0x18], esi
mov dword [ebx + 0x14], ebp
push edx
mov ecx, ebx
mov byte [ebx + 4], 0
call fcn.10009790
mov dword [esp + 0x20], 1
mov byte [esp + 0x13c], 0
cmp dword [esp + 0xcc], 0x10
jb 0x100875fa
mov eax, dword [esp + 0xb8]
push eax
jmp 0x100875f2
fstp st(0)
push 0xffffffffffffffff
push ebp
lea ecx, [esp + 0xbc]
mov esi, 0xf
push ecx
mov dword [ebx + 0x18], esi
mov dword [ebx + 0x14], ebp
mov ecx, ebx
mov byte [ebx + 4], 0
call fcn.10009790
mov dword [esp + 0x20], 1
mov byte [esp + 0x13c], 0
cmp dword [esp + 0xcc], 0x10
jb 0x100875fa
mov edx, dword [esp + 0xb8]
push edx
call fcn.100ee4bd
add esp, 4
mov byte [esp + 0xb8], 0
mov dword [esp + 0xc8], ebp
mov dword [esp + 0xcc], esi
mov eax, ebx
mov ecx, dword [esp + 0x134]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x11c]
xor ecx, esp
call fcn.100ffae6
add esp, 0x12c
ret