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

Disassembly:
push 0xffffffffffffffff
push 0x10173810
mov eax, dword fs:[0]
push eax
sub esp, 0xf4
mov eax, dword [0x101c52b4]
xor eax, esp
mov dword [esp + 0xf0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101c52b4]
xor eax, esp
push eax
lea eax, [esp + 0x108]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x118]
mov ecx, dword [esp + 0x11c]
mov esi, dword [esp + 0x130]
xor ebx, ebx
mov dword [esp + 0x80], ebx
mov edi, 0xf
mov dword [esp + 0x90], ebp
mov dword [esp + 0xac], edi
mov dword [esp + 0xa8], ebx
mov byte [esp + 0x98], bl
mov dword [esp + 0x110], 1
push ebx
pop ebx
fld qword [0x10179960]
fld qword [esp + 0x134]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jnp 0x1008a53a
fld1
fcompp
fnstsw ax
test ah, 5
jnp 0x1008a53c
cmp dword [esp + 0x13c], 3
ja 0x1008a4f7
push ecx
pop ecx
push ebx
pop ebx
mov dword [esp + 0x14], ebx
mov al, al
mov eax, eax
lea eax, [esp + 0x1c]
push eax
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x1c]
push eax
lea edx, [esp + 0x24]
push edx
mov edx, dword [esp + 0x13c]
lea eax, [esp + 0x5c]
push eax
mov eax, dword [esp + 0x13c]
push edx
mov edx, dword [esp + 0x13c]
push eax
mov eax, dword [esp + 0x13c]
push edx
push eax
push ecx
call fcn.10048c70
add esp, 0x28
test eax, eax
jne 0x10089604
lea ecx, [esp + 0x94]
push ecx
mov ecx, ebp
call fcn.1000a250
mov dword [esp + 0x80], 1
mov byte [esp + 0x110], bl
lea ecx, [esp + 0x94]
call fcn.100066f0
jmp 0x1008a59b
fld1
fsub qword [esp + 0x134]
fnstcw word [esp + 0x48]
fmul qword [0x10179910]
movzx eax, word [esp + 0x48]
or eax, 0xc00
mov dword [esp + 0xf0], eax
fldcw word [esp + 0xf0]
fistp qword [esp + 0xf0]
mov edx, dword [esp + 0xf0]
mov dword [esp + 0xfc], edx
fldcw word [esp + 0x48]
mov edx, edx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov byte [esp + 0x110], 2
mov cl, cl
mov ecx, ecx
lea ecx, [esp + 0x34]
call fcn.10100215
mov byte [esp + 0x110], 3
mov al, al
push ebx
lea eax, [esp + 0x38]
push eax
push 0x10179594
push esi
call fcn.1004f530
add esp, 0x10
mov edi, eax
xchg ebx, eax
xchg ebx, eax
xor esi, esi
cmp edi, ebx
jle 0x10089775
mov bl, 0x64
lea esp, [esp]
mov dh, dh
mov byte [esp + 0xf0], 0x25
mov byte [esp + 0xf1], bl
mov byte [esp + 0xf2], 0x7c
mov byte [esp + 0xf3], 0x25
mov byte [esp + 0xf4], bl
mov byte [esp + 0xf5], 0x7c
mov byte [esp + 0xf6], 0x25
mov byte [esp + 0xf7], bl
mov byte [esp + 0xf8], 0
mov edi, edi
test esi, esi
jl 0x100897cc
cmp esi, dword [esp + 0x3c]
jge 0x100897cc
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx + esi*4]
lea edx, [esp + 0x8c]
push edx
lea ecx, [esp + 0x8c]
push ecx
lea edx, [esp + 0x8c]
push edx
lea ecx, [esp + 0xfc]
push ecx
push eax
call fcn.10110865
add esp, 0x14
xchg ebx, eax
xchg ebx, eax
cmp dword [esp + 0x8c], 0
je 0x10089746
mov dword [esp + 0x8c], 0
mov esi, esi
jmp 0x10089753
mov dword [esp + 0x8c], 1
push ecx
pop ecx
lea edx, [esp + 0x84]
push edx
lea ecx, [esp + 0x28]
call fcn.10076280
mov dl, dl
add esi, 1
cmp esi, edi
jl 0x100896a0
xor ebx, ebx
cmp edi, ebx
jne 0x100897d1
lea eax, [esp + 0x94]
push eax
mov ecx, ebp
call fcn.1000a250
mov dword [esp + 0x80], 1
mov byte [esp + 0x110], 2
lea ecx, [esp + 0x34]
call fcn.1010055d
mov byte [esp + 0x110], 1
lea ecx, [esp + 0x24]
call fcn.10094290
mov byte [esp + 0x110], 0
lea ecx, [esp + 0x94]
call fcn.100066f0
jmp 0x1008a59b
jmp fcn.100fcfa6
push 0x2ee6
call fcn.1010df39
mov edi, eax
add esp, 4
mov dword [esp + 0xf0], edi
mov ecx, ecx
push 0x1772
call fcn.1010df39
mov esi, eax
add esp, 4
mov dword [esp + 0x78], esi
mov al, al
push 0x1772
call fcn.1010df39
add esp, 4
mov dword [esp + 0x74], eax
mov dl, dl
cmp edi, ebx
je 0x1008a4c8
cmp esi, ebx
je 0x1008a4bd
cmp eax, ebx
je 0x1008a4bd
push 0x2ee6
push ebx
push edi
call fcn.1010efd0
add esp, 0xc
mov ebx, ebx
push 0x1772
push ebx
push esi
call fcn.1010efd0
add esp, 0xc
push ecx
pop ecx
mov ecx, dword [esp + 0x74]
push 0x1772
push ebx
push ecx
call fcn.1010efd0
add esp, 0xc
mov edx, edx
mov eax, dword [esp + 0x13c]
cmp eax, ebx
jne 0x10089b3d
xor edx, edx
cmp dword [esp + 0x54], ebx
mov dword [esp + 0x48], edx
jle 0x1008a3ae
mov eax, dword [esp + 0x50]
xor ecx, ecx
test eax, eax
mov dword [esp + 0x7c], ecx
jle 0x10089b27
mov eax, edx
imul eax, dword [esp + 0x18]
add eax, dword [esp + 0x14]
lea eax, [eax + ecx*4]
mov edx, edx
mov byte [eax + 3], 0
mov dl, dl
mov esi, dword [esp + 0x54]
mov eax, dword [eax]
push esi
mov esi, dword [esp + 0x54]
push esi
mov esi, dword [esp + 0x104]
push edx
mov edx, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x28]
push ecx
push edx
push eax
lea ecx, [esp + 0x40]
push ecx
call fcn.1005b450
add esp, 0x20
test eax, eax
je 0x10089b0c
xor eax, eax
mov byte [esp + 0xb0], 0
mov dword [esp + 0xb1], eax
mov dword [esp + 0xb5], eax
mov dword [esp + 0xb9], eax
mov dword [esp + 0xbd], eax
mov dword [esp + 0xc1], eax
mov dword [esp + 0xc5], eax
mov dword [esp + 0xc9], eax
mov word [esp + 0xcd], ax
mov byte [esp + 0xcf], al
xchg ebx, eax
xchg ebx, eax
mov byte [esp + 0xd0], al
mov dword [esp + 0xd1], eax
mov dword [esp + 0xd5], eax
mov dword [esp + 0xd9], eax
mov dword [esp + 0xdd], eax
mov dword [esp + 0xe1], eax
mov dword [esp + 0xe5], eax
mov dword [esp + 0xe9], eax
mov word [esp + 0xed], ax
mov byte [esp + 0xef], al
mov al, al
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x7c]
lea edi, [eax + edx]
mov ah, ah
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x48]
lea ebp, [edx + ecx]
mov bl, bl
mov eax, dword [esp + 0x78]
lea ecx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10089992
sub eax, ecx
mov esi, eax
xchg ebx, eax
xchg ebx, eax
mov eax, dword [esp + 0x74]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x100899a8
sub eax, edx
mov ebx, eax
push edx
pop edx
push edi
lea eax, [esp + 0xb4]
push 0x10179678
push eax
call fcn.1010fdb0
add esp, 0xc
mov ecx, ecx
push ebp
lea ecx, [esp + 0xd4]
push 0x10179678
push ecx
call fcn.1010fdb0
add esp, 0xc
mov edx, edx
test esi, esi
lea eax, [esp + 0xb0]
jne 0x10089a10
mov edx, dword [esp + 0x78]
mov ecx, eax
sub edx, ecx
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x10089a00
push eax
pop eax
jmp 0x10089a7c
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10089a13
sub eax, edx
add eax, esi
cmp eax, 0x1770
jae 0x10089a7c
mov ebp, dword [esp + 0x78]
mov edi, ebp
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10089a30
mov dx, word [0x10179594]
mov word [edi], dx
mov cl, cl
lea eax, [esp + 0xb0]
mov ecx, eax
nop
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10089a50
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10089a62
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 dh, dh
test ebx, ebx
lea eax, [esp + 0xd0]
jne 0x10089aa0
mov edx, dword [esp + 0x74]
mov ecx, eax
sub edx, ecx
nop
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x10089a90
push ecx
pop ecx
jmp 0x10089b0c
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10089aa3
sub eax, edx
add eax, ebx
cmp eax, 0x1770
jae 0x10089b0c
mov ebx, dword [esp + 0x74]
mov edi, ebx
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10089ac0
mov dx, word [0x10179594]
mov word [edi], dx
mov eax, eax
lea eax, [esp + 0xd0]
mov ecx, eax
nop
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10089ae0
mov edi, ebx
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10089af2
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 bl, bl
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x48]
add ecx, 1
cmp ecx, eax
mov dword [esp + 0x7c], ecx
jl 0x10089891
add edx, 1
cmp edx, dword [esp + 0x54]
mov dword [esp + 0x48], edx
jl 0x10089883
jmp 0x1008a3ae
cmp eax, 1
jne 0x10089e13
mov eax, dword [esp + 0x54]
add eax, 0xffffffff
cmp eax, ebx
mov dword [esp + 0x48], eax
jl 0x1008a3ae
mov eax, dword [esp + 0x50]
lea ecx, [ecx]
xor edi, edi
test eax, eax
mov dword [esp + 0x7c], edi
jle 0x10089e03
mov edi, edi
mov ebp, dword [esp + 0x48]
mov eax, ebp
imul eax, dword [esp + 0x18]
add eax, dword [esp + 0x14]
lea eax, [eax + edi*4]
mov ch, ch
mov byte [eax + 3], 0
xchg ebx, eax
xchg ebx, eax
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
mov eax, dword [eax]
mov esi, dword [esp + 0xfc]
push ecx
mov ecx, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x1c]
push ebp
push edi
push ecx
push edx
push eax
lea ecx, [esp + 0x40]
push ecx
call fcn.1005b450
add esp, 0x20
test eax, eax
je 0x10089dec
xor eax, eax
mov byte [esp + 0xd0], 0
mov dword [esp + 0xd1], eax
mov dword [esp + 0xd5], eax
mov dword [esp + 0xd9], eax
mov dword [esp + 0xdd], eax
mov dword [esp + 0xe1], eax
mov dword [esp + 0xe5], eax
mov dword [esp + 0xe9], eax
mov word [esp + 0xed], ax
mov byte [esp + 0xef], al
mov dl, dl
mov byte [esp + 0xb0], al
mov dword [esp + 0xb1], eax
mov dword [esp + 0xb5], eax
mov dword [esp + 0xb9], eax
mov dword [esp + 0xbd], eax
mov dword [esp + 0xc1], eax
mov dword [esp + 0xc5], eax
mov dword [esp + 0xc9], eax
mov word [esp + 0xcd], ax
mov byte [esp + 0xcf], al
mov dl, dl
mov edx, dword [esp + 0x20]
add edi, edx
mov dl, dl
mov eax, dword [esp + 0x1c]
add ebp, eax
mov ch, ch
mov eax, dword [esp + 0x78]
lea ecx, [eax + 1]
jmp 0x10089c70
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10089c70
sub eax, ecx
mov esi, eax
push edx
pop edx
mov eax, dword [esp + 0x74]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10089c86
sub eax, edx
mov ebx, eax
mov edx, edx
push edi
lea ecx, [esp + 0xd4]
push 0x10179678
push ecx
call fcn.1010fdb0
add esp, 0xc
mov cl, cl
push ebp
lea edx, [esp + 0xb4]
push 0x10179678
push edx
call fcn.1010fdb0
add esp, 0xc
mov cl, cl
test esi, esi
lea eax, [esp + 0xd0]
jne 0x10089ce8
mov edx, dword [esp + 0x78]
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x10089cd8
mov edx, edx
jmp 0x10089d5c
lea edx, [eax + 1]
jmp 0x10089cf0
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10089cf0
sub eax, edx
add eax, esi
cmp eax, 0x1770
jae 0x10089d5c
mov ebp, dword [esp + 0x78]
mov edi, ebp
add edi, 0xffffffff
lea ecx, [ecx]
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10089d10
mov dx, word [0x10179594]
mov word [edi], dx
mov bh, bh
lea eax, [esp + 0xd0]
mov ecx, eax
nop
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10089d30
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10089d42
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]
push eax
pop eax
test ebx, ebx
lea eax, [esp + 0xb0]
jne 0x10089d80
mov edx, dword [esp + 0x74]
mov ecx, eax
sub edx, ecx
nop
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x10089d70
push edx
pop edx
jmp 0x10089dec
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10089d83
sub eax, edx
add eax, ebx
cmp eax, 0x1770
jae 0x10089dec
mov ebx, dword [esp + 0x74]
mov edi, ebx
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10089da0
mov dx, word [0x10179594]
mov word [edi], dx
mov bh, bh
lea eax, [esp + 0xb0]
mov ecx, eax
nop
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10089dc0
mov edi, ebx
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10089dd2
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]
xchg ebx, eax
xchg ebx, eax
mov edi, dword [esp + 0x7c]
mov eax, dword [esp + 0x50]
add edi, 1
cmp edi, eax
mov dword [esp + 0x7c], edi
jl 0x10089b70
sub dword [esp + 0x48], 1
jns 0x10089b60
jmp 0x1008a3ae
cmp eax, 2
jne 0x1008a0e7
xor ecx, ecx
cmp dword [esp + 0x54], ebx
mov dword [esp + 0x48], ecx
jle 0x1008a3ae
lea esp, [esp]
mov edx, dword [esp + 0x50]
add edx, 0xffffffff
mov dword [esp + 0x7c], edx
js 0x1008a0d1
mov eax, ecx
imul eax, dword [esp + 0x18]
add eax, dword [esp + 0x14]
lea eax, [eax + edx*4]
push ecx
pop ecx
mov byte [eax + 3], 0
push eax
pop eax
mov esi, dword [esp + 0x54]
mov eax, dword [eax]
push esi
mov esi, dword [esp + 0x54]
push esi
mov esi, dword [esp + 0x104]
push ecx
mov ecx, dword [esp + 0x24]
push edx
mov edx, dword [esp + 0x24]
push ecx
push edx
push eax
lea ecx, [esp + 0x40]
push ecx
call fcn.1005b450
add esp, 0x20
test eax, eax
je 0x1008a0bc
xor eax, eax
mov byte [esp + 0xd0], 0
mov dword [esp + 0xd1], eax
mov dword [esp + 0xd5], eax
mov dword [esp + 0xd9], eax
mov dword [esp + 0xdd], eax
mov dword [esp + 0xe1], eax
mov dword [esp + 0xe5], eax
mov dword [esp + 0xe9], eax
mov word [esp + 0xed], ax
mov byte [esp + 0xef], al
push eax
pop eax
mov byte [esp + 0xb0], al
mov dword [esp + 0xb1], eax
mov dword [esp + 0xb5], eax
mov dword [esp + 0xb9], eax
mov dword [esp + 0xbd], eax
mov dword [esp + 0xc1], eax
mov dword [esp + 0xc5], eax
mov dword [esp + 0xc9], eax
mov word [esp + 0xcd], ax
mov byte [esp + 0xcf], al
push ecx
pop ecx
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x7c]
lea edi, [eax + edx]
mov ebp, ebp
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x48]
lea ebp, [edx + ecx]
mov eax, eax
mov eax, dword [esp + 0x78]
lea ecx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10089f42
sub eax, ecx
mov esi, eax
mov esi, esi
mov eax, dword [esp + 0x74]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10089f58
sub eax, edx
mov ebx, eax
mov edx, edx
push edi
lea eax, [esp + 0xd4]
push 0x10179678
push eax
call fcn.1010fdb0
add esp, 0xc
mov eax, eax
push ebp
lea ecx, [esp + 0xb4]
push 0x10179678
push ecx
call fcn.1010fdb0
add esp, 0xc
push edx
pop edx
test esi, esi
lea eax, [esp + 0xd0]
jne 0x10089fc0
mov edx, dword [esp + 0x78]
mov ecx, eax
sub edx, ecx
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x10089fb0
mov edi, edi
jmp 0x1008a02c
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10089fc3
sub eax, edx
add eax, esi
cmp eax, 0x1770
jae 0x1008a02c
mov ebp, dword [esp + 0x78]
mov edi, ebp
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10089fe0
mov dx, word [0x10179594]
mov word [edi], dx
mov dl, dl
lea eax, [esp + 0xd0]
mov ecx, eax
nop
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1008a000
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x1008a012
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]
push edx
pop edx
test ebx, ebx
lea eax, [esp + 0xb0]
jne 0x1008a050
mov edx, dword [esp + 0x74]
mov ecx, eax
sub edx, ecx
nop
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x1008a040
mov edx, edx
jmp 0x1008a0bc
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1008a053
sub eax, edx
add eax, ebx
cmp eax, 0x1770
jae 0x1008a0bc
mov ebx, dword [esp + 0x74]
mov edi, ebx
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x1008a070
mov dx, word [0x10179594]
mov word [edi], dx
mov edi, edi
lea eax, [esp + 0xb0]
mov ecx, eax
nop
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1008a090
mov edi, ebx
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x1008a0a2
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 cl, cl
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x48]
sub edx, 1
mov dword [esp + 0x7c], edx
jns 0x10089e41
add ecx, 1
cmp ecx, dword [esp + 0x54]
mov dword [esp + 0x48], ecx
jl 0x10089e30
jmp 0x1008a3ae
cmp eax, 3
jne 0x1008a3ae
mov ebp, dword [esp + 0x54]
add ebp, 0xffffffff
mov dword [esp + 0x48], ebp
js 0x1008a3ae
mov edi, dword [esp + 0x50]
add edi, 0xffffffff
mov dword [esp + 0x7c], edi
js 0x1008a3a1
mov eax, ebp
imul eax, dword [esp + 0x18]
add eax, dword [esp + 0x14]
lea eax, [eax + edi*4]
mov ebp, ebp
mov byte [eax + 3], 0
xchg ebx, eax
xchg ebx, eax
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
mov eax, dword [eax]
mov esi, dword [esp + 0xfc]
push ecx
mov ecx, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x1c]
push ebp
push edi
push ecx
push edx
push eax
lea ecx, [esp + 0x40]
push ecx
call fcn.1005b450
add esp, 0x20
test eax, eax
je 0x1008a38c
xor eax, eax
mov byte [esp + 0xd0], 0
mov dword [esp + 0xd1], eax
mov dword [esp + 0xd5], eax
mov dword [esp + 0xd9], eax
mov dword [esp + 0xdd], eax
mov dword [esp + 0xe1], eax
mov dword [esp + 0xe5], eax
mov dword [esp + 0xe9], eax
mov word [esp + 0xed], ax
mov byte [esp + 0xef], al
mov bl, bl
mov byte [esp + 0xb0], al
mov dword [esp + 0xb1], eax
mov dword [esp + 0xb5], eax
mov dword [esp + 0xb9], eax
mov dword [esp + 0xbd], eax
mov dword [esp + 0xc1], eax
mov dword [esp + 0xc5], eax
mov dword [esp + 0xc9], eax
mov word [esp + 0xcd], ax
mov byte [esp + 0xcf], al
mov dl, dl
mov edx, dword [esp + 0x20]
add edi, edx
mov bl, bl
mov eax, dword [esp + 0x1c]
add ebp, eax
push edx
pop edx
mov eax, dword [esp + 0x78]
lea ecx, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1008a210
sub eax, ecx
mov esi, eax
mov bh, bh
mov eax, dword [esp + 0x74]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1008a226
sub eax, edx
mov ebx, eax
mov bh, bh
push edi
lea ecx, [esp + 0xd4]
push 0x10179678
push ecx
call fcn.1010fdb0
add esp, 0xc
push edx
pop edx
push ebp
lea edx, [esp + 0xb4]
push 0x10179678
push edx
call fcn.1010fdb0
add esp, 0xc
mov ch, ch
test esi, esi
lea eax, [esp + 0xd0]
jne 0x1008a288
mov edx, dword [esp + 0x78]
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x1008a278
mov ecx, ecx
jmp 0x1008a2fc
lea edx, [eax + 1]
jmp 0x1008a290
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1008a290
sub eax, edx
add eax, esi
cmp eax, 0x1770
jae 0x1008a2fc
mov ebp, dword [esp + 0x78]
mov edi, ebp
add edi, 0xffffffff
lea ecx, [ecx]
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x1008a2b0
mov dx, word [0x10179594]
mov word [edi], dx
push edx
pop edx
lea eax, [esp + 0xd0]
mov ecx, eax
nop
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1008a2d0
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x1008a2e2
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 cl, cl
test ebx, ebx
lea eax, [esp + 0xb0]
jne 0x1008a320
mov edx, dword [esp + 0x74]
mov ecx, eax
sub edx, ecx
nop
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x1008a310
mov eax, eax
jmp 0x1008a38c
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1008a323
sub eax, edx
add eax, ebx
cmp eax, 0x1770
jae 0x1008a38c
mov ebx, dword [esp + 0x74]
mov edi, ebx
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x1008a340
mov dx, word [0x10179594]
mov word [edi], dx
mov dl, dl
lea eax, [esp + 0xb0]
mov ecx, eax
nop
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1008a360
mov edi, ebx
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x1008a372
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]
push eax
pop eax
mov edi, dword [esp + 0x7c]
mov ebp, dword [esp + 0x48]
sub edi, 1
mov dword [esp + 0x7c], edi
jns 0x1008a112
sub ebp, 1
mov dword [esp + 0x48], ebp
jns 0x1008a101
mov edi, dword [esp + 0x78]
cmp byte [edi], 0
je 0x1008a41a
mov al, 0x73
mov byte [esp + 0xfc], 0x25
mov byte [esp + 0xfd], al
mov byte [esp + 0xfe], 0x7c
mov byte [esp + 0xff], 0x25
mov byte [esp + 0x100], al
mov byte [esp + 0x101], 0
push ecx
pop ecx
mov eax, dword [esp + 0x74]
mov esi, dword [esp + 0xf0]
push eax
push edi
lea ecx, [esp + 0x104]
push ecx
push esi
call fcn.1010fdb0
add esp, 0x10
mov al, al
push esi
lea ecx, [esp + 0x98]
call fcn.1000d4c0
mov edi, edi
jmp 0x1008a423
mov esi, esi
mov esi, dword [esp + 0xf0]
push esi
call fcn.1010dffc
add esp, 4
mov esi, esi
push edi
call fcn.1010dffc
add esp, 4
mov ecx, ecx
mov edx, dword [esp + 0x74]
push edx
call fcn.1010dffc
add esp, 4
mov ebp, ebp
mov eax, dword [esp + 0x14]
push eax
call fcn.1010dffc
add esp, 4
mov dword [esp + 0x14], 0
mov ebp, ebp
mov esi, dword [esp + 0x90]
lea ecx, [esp + 0x94]
push ecx
mov ecx, esi
call fcn.1000a250
mov dword [esp + 0x80], 1
mov byte [esp + 0x110], 2
lea ecx, [esp + 0x34]
call fcn.1010055d
mov byte [esp + 0x110], 1
lea ecx, [esp + 0x24]
call fcn.10094290
mov byte [esp + 0x110], 0
lea ecx, [esp + 0x94]
call fcn.100066f0
mov eax, esi
jmp 0x1008a59d
push edi
call fcn.1010dffc
add esp, 4
mov ah, ah
cmp esi, ebx
je 0x1008a4d7
push esi
call fcn.1010dffc
add esp, 4
push ebx
pop ebx
mov eax, dword [esp + 0x74]
cmp eax, ebx
je 0x1008a4ea
push eax
call fcn.1010dffc
add esp, 4
mov esi, esi
lea edx, [esp + 0x94]
push edx
jmp 0x1008977f
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x9c]
mov dword [ebp + 0x18], edi
mov dword [ebp + 0x14], ebx
push eax
mov ecx, ebp
mov byte [ebp + 4], 0
call fcn.10009f70
mov dword [esp + 0x80], 1
mov byte [esp + 0x110], 0
cmp dword [esp + 0xac], 0x10
jb 0x1008a585
mov ecx, dword [esp + 0x98]
push ecx
jmp 0x1008a57d
fstp st(0)
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x9c]
mov dword [ebp + 0x18], edi
mov dword [ebp + 0x14], ebx
push edx
mov ecx, ebp
mov byte [ebp + 4], 0
call fcn.10009f70
mov dword [esp + 0x80], 1
mov byte [esp + 0x110], 0
cmp dword [esp + 0xac], 0x10
jb 0x1008a585
mov eax, dword [esp + 0x98]
push eax
call fcn.100fcea8
add esp, 4
mov byte [esp + 0x98], 0
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], edi
mov eax, ebp
mov ecx, dword [esp + 0x108]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xf0]
xor ecx, esp
call fcn.1010e4d7
add esp, 0x100
ret