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

Disassembly:
push 0xffffffffffffffff
push 0x10173cd4
mov eax, dword fs:[0]
push eax
sub esp, 0x11c
mov eax, dword [0x101c52b4]
xor eax, esp
mov dword [esp + 0x118], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101c52b4]
xor eax, esp
push eax
lea eax, [esp + 0x130]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x140]
mov edi, dword [esp + 0x144]
mov esi, dword [esp + 0x158]
mov ebx, dword [esp + 0x15c]
xor eax, eax
mov dword [esp + 0xb0], eax
push eax
push 0x10178a34
lea ecx, [esp + 0xc0]
mov dword [esp + 0xbc], ebp
mov dword [esp + 0xd8], 0xf
mov dword [esp + 0xd4], eax
mov byte [esp + 0xc4], al
call fcn.1000a180
mov dword [esp + 0x138], 1
mov dl, dl
fld qword [0x10179960]
fld qword [esp + 0x160]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jnp 0x10090602
fld1
fcompp
fnstsw ax
test ah, 5
jnp 0x10090604
cmp dword [esp + 0x168], 3
ja 0x100905b8
nop
xchg ebx, eax
xchg ebx, eax
mov dword [esp + 0x14], 0
mov ch, ch
mov dh, dh
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x1c]
push edx
mov edx, dword [esp + 0x160]
lea eax, [esp + 0x24]
push eax
mov eax, dword [esp + 0x160]
lea ecx, [esp + 0x84]
push ecx
mov ecx, dword [esp + 0x160]
push edx
mov edx, dword [esp + 0x160]
push eax
push ecx
push edx
push edi
call fcn.10048c70
add esp, 0x28
test eax, eax
jne 0x1008f193
lea eax, [esp + 0xb8]
push eax
mov ecx, ebp
call fcn.1000a250
mov dword [esp + 0xb0], 1
mov byte [esp + 0x138], 0
lea ecx, [esp + 0xb8]
call fcn.100066f0
jmp 0x1009066a
fld1
fsub qword [esp + 0x160]
fnstcw word [esp + 0x44]
movzx eax, word [esp + 0x44]
fmul qword [0x10179910]
or eax, 0xc00
mov dword [esp + 0x11c], eax
fldcw word [esp + 0x11c]
fistp qword [esp + 0x11c]
mov ebp, dword [esp + 0x11c]
fldcw word [esp + 0x44]
mov bh, bh
xor edi, edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
mov byte [esp + 0x138], 2
mov edi, edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
mov byte [esp + 0x138], 3
mov ah, ah
push ecx
pop ecx
lea ecx, [esp + 0x60]
call fcn.10100215
mov byte [esp + 0x138], 4
mov edi, edi
push edi
lea ecx, [esp + 0x64]
push ecx
push 0x10179578
push esi
call fcn.1004f530
add esp, 0x10
mov edi, eax
mov cl, cl
xor esi, esi
test edi, edi
jle 0x1008f317
jmp 0x1008f240
mov cl, cl
mov dword [esp + 0x48], 0
mov ch, ch
mov byte [esp + 0x11c], 0x25
mov byte [esp + 0x11d], 0x78
mov byte [esp + 0x11e], 0x2d
mov byte [esp + 0x11f], 0x25
mov byte [esp + 0x120], 0x78
mov byte [esp + 0x121], 0
push edx
pop edx
test esi, esi
jl 0x1008f3f9
cmp esi, dword [esp + 0x68]
jge 0x1008f3f9
mov edx, dword [esp + 0x64]
mov eax, dword [edx + esi*4]
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0xd8]
push edx
lea ecx, [esp + 0x124]
push ecx
push eax
call fcn.10110865
add esp, 0x10
mov ecx, ecx
movzx edx, byte [esp + 0x4a]
add edx, ebp
mov dword [esp + 0xd8], edx
mov dl, dl
movzx eax, byte [esp + 0x49]
add eax, ebp
mov dword [esp + 0xdc], eax
mov ecx, ecx
mov ecx, dword [esp + 0x48]
and ecx, 0xff
add ecx, ebp
mov dword [esp + 0xe0], ecx
xchg ebx, eax
xchg ebx, eax
mov dword [esp + 0xe4], 0
mov eax, eax
lea edx, [esp + 0xd4]
push edx
lea ecx, [esp + 0x38]
call fcn.10075f80
mov ebx, ebx
add esi, 1
cmp esi, edi
jl 0x1008f240
lea ecx, [esp + 0x4c]
call fcn.10100215
mov byte [esp + 0x138], 5
push edx
pop edx
xor esi, esi
push esi
lea eax, [esp + 0x50]
push eax
push 0x10179594
push ebx
call fcn.1004f530
add esp, 0x10
mov dword [esp + 0x11c], eax
mov eax, eax
cmp eax, esi
mov dword [esp + 0x48], esi
jle 0x1008f631
jmp 0x1008f360
mov dword [esp + 0xf8], esi
mov dword [esp + 0xfc], esi
mov dword [esp + 0x100], esi
mov byte [esp + 0x138], 7
mov ebp, ebp
lea ecx, [esp + 0x9c]
call fcn.10100215
mov byte [esp + 0x138], 8
mov cl, cl
mov eax, dword [esp + 0x48]
cmp eax, esi
jl 0x1008f3f9
cmp eax, dword [esp + 0x54]
jge 0x1008f3f9
mov ecx, dword [esp + 0x50]
mov edx, eax
mov eax, dword [ecx + edx*4]
push esi
lea ecx, [esp + 0xa0]
push ecx
push 0x10179578
push eax
call fcn.1004f530
add esp, 0x10
mov edi, eax
push eax
pop eax
cmp edi, 3
jge 0x1008f3fe
mov byte [esp + 0x138], 7
lea ecx, [esp + 0x9c]
call fcn.1010055d
mov byte [esp + 0x138], 5
lea ecx, [esp + 0xf4]
call fcn.10068b10
jmp 0x1008f619
jmp fcn.100fcfa6
cmp dword [esp + 0xa4], esi
jle 0x1008f3f9
mov edx, dword [esp + 0xa0]
mov eax, dword [edx]
lea ecx, [esp + 0x104]
push ecx
push 0x10179678
push eax
call fcn.10110865
add esp, 0xc
mov bl, bl
cmp dword [esp + 0xa4], 1
jle 0x1008f3f9
mov edx, dword [esp + 0xa0]
mov eax, dword [edx + 4]
lea ecx, [esp + 0x108]
push ecx
push 0x10179678
push eax
call fcn.10110865
add esp, 0xc
mov eax, eax
mov esi, 2
cmp edi, esi
jle 0x1008f5dc
xor ebx, ebx
mov dh, dh
mov dword [esp + 0x44], ebx
mov al, al
cmp esi, ebx
jl 0x1008f3f9
cmp esi, dword [esp + 0xa4]
jge 0x1008f3f9
mov edx, dword [esp + 0xa0]
mov eax, dword [edx + esi*4]
mov cl, cl
cmp byte [eax], 0x2d
jne 0x1008f498
mov dword [esp + 0xe4], 1
mov ebx, ebx
jmp 0x1008f4a1
mov dword [esp + 0xe4], ebx
mov cl, cl
cmp dword [esp + 0xe4], ebx
je 0x1008f51d
mov byte [esp + 0x124], 0x2d
mov byte [esp + 0x125], 0x25
mov byte [esp + 0x126], 0x78
mov byte [esp + 0x127], 0x2d
mov byte [esp + 0x128], 0x25
mov byte [esp + 0x129], 0x78
mov byte [esp + 0x12a], 0
push ecx
pop ecx
cmp esi, dword [esp + 0xa4]
jge 0x1008f3f9
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + esi*4]
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0xd8]
push edx
lea ecx, [esp + 0x12c]
push ecx
push eax
call fcn.10110865
add esp, 0x10
mov dl, dl
jmp 0x1008f586
mov byte [esp + 0x114], 0x25
mov byte [esp + 0x115], 0x78
mov byte [esp + 0x116], 0x2d
mov byte [esp + 0x117], 0x25
mov byte [esp + 0x118], 0x78
mov byte [esp + 0x119], 0
mov ah, ah
cmp esi, dword [esp + 0xa4]
jge 0x1008f3f9
mov edx, dword [esp + 0xa0]
mov eax, dword [edx + esi*4]
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0xd8]
push edx
lea ecx, [esp + 0x11c]
push ecx
push eax
call fcn.10110865
add esp, 0x10
mov edx, edx
movzx edx, byte [esp + 0x46]
add edx, ebp
mov dword [esp + 0xd8], edx
push ebx
pop ebx
movzx eax, byte [esp + 0x45]
add eax, ebp
mov dword [esp + 0xdc], eax
push ecx
pop ecx
mov ecx, dword [esp + 0x44]
and ecx, 0xff
add ecx, ebp
mov dword [esp + 0xe0], ecx
push ecx
pop ecx
lea edx, [esp + 0xd4]
push edx
lea ecx, [esp + 0xf8]
call fcn.10075f80
mov edi, edi
add esi, 1
cmp esi, edi
jl 0x1008f463
lea eax, [esp + 0xf4]
push eax
lea ecx, [esp + 0x28]
call fcn.1008e610
push ebx
pop ebx
mov byte [esp + 0x138], 7
lea ecx, [esp + 0x9c]
call fcn.1010055d
mov byte [esp + 0x138], 5
lea ecx, [esp + 0xf4]
call fcn.10068b10
xor esi, esi
mov eax, dword [esp + 0x48]
add eax, 1
cmp eax, dword [esp + 0x11c]
mov dword [esp + 0x48], eax
jl 0x1008f360
push 0x2ee6
call fcn.1010df39
mov edi, eax
add esp, 4
mov dword [esp + 0x11c], edi
push edx
pop edx
push 0x1772
call fcn.1010df39
mov ebx, eax
add esp, 4
mov dword [esp + 0x114], ebx
push edx
pop edx
push 0x1772
call fcn.1010df39
mov ebp, eax
add esp, 4
mov dword [esp + 0x124], ebp
push eax
pop eax
cmp edi, esi
je 0x100904a0
cmp ebx, esi
je 0x10090495
cmp ebp, esi
je 0x10090495
push 0x2ee6
push esi
push edi
call fcn.1010efd0
add esp, 0xc
mov ch, ch
push 0x1772
push esi
push ebx
call fcn.1010efd0
add esp, 0xc
mov cl, cl
push 0x1772
push esi
push ebp
call fcn.1010efd0
add esp, 0xc
mov ch, ch
mov eax, dword [esp + 0x168]
cmp eax, esi
jne 0x1008f9df
cmp dword [esp + 0x7c], esi
mov dword [esp + 0x48], esi
jle 0x100902d2
mov eax, dword [esp + 0x78]
jmp 0x1008f6f0
test eax, eax
mov dword [esp + 0x44], 0
jle 0x1008f9c5
mov ecx, dword [esp + 0x48]
imul ecx, dword [esp + 0x18]
add ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x44]
lea eax, [ecx + edx*4]
mov ebp, ebp
mov byte [eax + 3], 0
push ebx
pop ebx
mov eax, dword [eax]
push eax
lea edi, [esp + 0x38]
call fcn.1005ab60
add esp, 4
test eax, eax
je 0x1008f9ae
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x48]
push edx
mov edx, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x20]
push ecx
push edx
push eax
lea edi, [esp + 0x3c]
call fcn.1005b3a0
add esp, 0x18
test eax, eax
je 0x1008f9ae
xor eax, eax
mov byte [esp + 0xf4], 0
mov dword [esp + 0xf5], eax
mov dword [esp + 0xf9], eax
mov dword [esp + 0xfd], eax
mov dword [esp + 0x101], eax
mov dword [esp + 0x105], eax
mov dword [esp + 0x109], eax
mov dword [esp + 0x10d], eax
mov word [esp + 0x111], ax
mov byte [esp + 0x113], al
push ecx
pop ecx
mov byte [esp + 0xd4], al
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 dword [esp + 0xed], eax
mov word [esp + 0xf1], ax
mov byte [esp + 0xf3], al
mov ebp, ebp
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x44]
lea edi, [edx + ecx]
mov bh, bh
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x48]
lea ebp, [ecx + eax]
mov bl, bl
mov eax, dword [esp + 0x114]
lea ecx, [eax + 1]
mov edi, edi
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1008f820
sub eax, ecx
mov esi, eax
push eax
pop eax
mov eax, dword [esp + 0x124]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1008f840
sub eax, edx
mov ebx, eax
push ebx
pop ebx
push edi
lea edx, [esp + 0xf8]
push 0x10179678
push edx
call fcn.1010fdb0
add esp, 0xc
mov dl, dl
push ebp
lea eax, [esp + 0xd8]
push 0x10179678
push eax
call fcn.1010fdb0
add esp, 0xc
mov ebx, ebx
test esi, esi
lea eax, [esp + 0xf4]
jne 0x1008f8a5
mov edx, dword [esp + 0x114]
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x1008f895
mov bl, bl
jmp 0x1008f919
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1008f8a8
sub eax, edx
add eax, esi
cmp eax, 0x1770
jae 0x1008f919
mov ebp, dword [esp + 0x114]
mov edi, ebp
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x1008f8c8
mov dx, word [0x10179594]
mov word [edi], dx
push ecx
pop ecx
lea eax, [esp + 0xf4]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1008f8e7
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
lea esp, [esp]
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x1008f900
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]
nop
test ebx, ebx
lea eax, [esp + 0xd4]
jne 0x1008f940
mov edx, dword [esp + 0x124]
mov ecx, eax
sub edx, ecx
nop
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x1008f930
mov al, al
jmp 0x1008f9ae
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1008f943
sub eax, edx
add eax, ebx
cmp eax, 0x1770
jae 0x1008f9ae
mov ebx, dword [esp + 0x124]
mov edi, ebx
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x1008f963
mov dx, word [0x10179594]
mov word [edi], dx
push ebx
pop ebx
lea eax, [esp + 0xd4]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1008f982
mov edi, ebx
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x1008f994
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 eax, eax
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x78]
add ecx, 1
cmp ecx, eax
mov dword [esp + 0x44], ecx
jl 0x1008f700
mov ecx, dword [esp + 0x48]
add ecx, 1
cmp ecx, dword [esp + 0x7c]
mov dword [esp + 0x48], ecx
jl 0x1008f6f0
jmp 0x100902d2
cmp eax, 1
jne 0x1008fce3
mov eax, dword [esp + 0x7c]
add eax, 0xffffffff
cmp eax, esi
mov dword [esp + 0x48], eax
jl 0x100902d2
mov eax, dword [esp + 0x78]
nop
test eax, eax
mov dword [esp + 0x44], 0
jle 0x1008fcd3
mov eax, dword [esp + 0x48]
imul eax, dword [esp + 0x18]
add eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x44]
lea eax, [eax + ecx*4]
mov bh, bh
mov byte [eax + 3], 0
mov ebp, ebp
mov edx, dword [eax]
push edx
lea edi, [esp + 0x38]
call fcn.1005ab60
add esp, 4
test eax, eax
je 0x1008fcbc
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x48]
push eax
mov eax, dword [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x20]
push eax
push ecx
push edx
lea edi, [esp + 0x3c]
call fcn.1005b3a0
add esp, 0x18
test eax, eax
je 0x1008fcbc
xor eax, eax
mov byte [esp + 0xf4], 0
mov dword [esp + 0xf5], eax
mov dword [esp + 0xf9], eax
mov dword [esp + 0xfd], eax
mov dword [esp + 0x101], eax
mov dword [esp + 0x105], eax
mov dword [esp + 0x109], eax
mov dword [esp + 0x10d], eax
mov word [esp + 0x111], ax
mov byte [esp + 0x113], al
push ebx
pop ebx
mov byte [esp + 0xd4], al
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 dword [esp + 0xed], eax
mov word [esp + 0xf1], ax
mov byte [esp + 0xf3], al
mov ch, ch
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x44]
lea edi, [ecx + eax]
mov esi, esi
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x48]
lea ebp, [eax + edx]
mov cl, cl
mov eax, dword [esp + 0x114]
lea ecx, [eax + 1]
mov edi, edi
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1008fb30
sub eax, ecx
mov esi, eax
xchg ebx, eax
xchg ebx, eax
mov eax, dword [esp + 0x124]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1008fb50
sub eax, edx
mov ebx, eax
nop
push edi
lea ecx, [esp + 0xf8]
push 0x10179678
push ecx
call fcn.1010fdb0
add esp, 0xc
mov al, al
push ebp
lea edx, [esp + 0xd8]
push 0x10179678
push edx
call fcn.1010fdb0
add esp, 0xc
mov edi, edi
test esi, esi
lea eax, [esp + 0xf4]
jne 0x1008fbb4
mov edx, dword [esp + 0x114]
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x1008fba4
mov ebp, ebp
jmp 0x1008fc22
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1008fbb7
sub eax, edx
add eax, esi
cmp eax, 0x1770
jae 0x1008fc22
mov ebp, dword [esp + 0x114]
mov edi, ebp
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x1008fbd7
mov dx, word [0x10179594]
mov word [edi], dx
mov cl, cl
lea eax, [esp + 0xf4]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1008fbf6
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x1008fc08
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 ebx
pop ebx
test ebx, ebx
lea eax, [esp + 0xd4]
jne 0x1008fc48
mov edx, dword [esp + 0x124]
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x1008fc38
push ecx
pop ecx
jmp 0x1008fcbc
lea edx, [eax + 1]
jmp 0x1008fc50
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1008fc50
sub eax, edx
add eax, ebx
cmp eax, 0x1770
jae 0x1008fcbc
mov ebx, dword [esp + 0x124]
mov edi, ebx
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x1008fc70
mov dx, word [0x10179594]
mov word [edi], dx
push ecx
pop ecx
lea eax, [esp + 0xd4]
mov ecx, eax
nop
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1008fc90
mov edi, ebx
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x1008fca2
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 ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x78]
add ecx, 1
cmp ecx, eax
mov dword [esp + 0x44], ecx
jl 0x1008fa10
sub dword [esp + 0x48], 1
jns 0x1008fa00
jmp 0x100902d2
cmp eax, 2
jne 0x1008ffe3
cmp dword [esp + 0x7c], esi
mov dword [esp + 0x48], esi
jle 0x100902d2
lea ebx, [ebx]
mov eax, dword [esp + 0x78]
add eax, 0xffffffff
mov dword [esp + 0x44], eax
js 0x1008ffc9
mov eax, dword [esp + 0x48]
imul eax, dword [esp + 0x18]
add eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x44]
lea eax, [eax + ecx*4]
push edx
pop edx
mov byte [eax + 3], 0
mov ah, ah
mov edx, dword [eax]
push edx
lea edi, [esp + 0x38]
call fcn.1005ab60
add esp, 4
test eax, eax
je 0x1008ffbe
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x48]
push eax
mov eax, dword [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x20]
push eax
push ecx
push edx
lea edi, [esp + 0x3c]
call fcn.1005b3a0
add esp, 0x18
test eax, eax
je 0x1008ffbe
xor eax, eax
mov byte [esp + 0xf4], 0
mov dword [esp + 0xf5], eax
mov dword [esp + 0xf9], eax
mov dword [esp + 0xfd], eax
mov dword [esp + 0x101], eax
mov dword [esp + 0x105], eax
mov dword [esp + 0x109], eax
mov dword [esp + 0x10d], eax
mov word [esp + 0x111], ax
mov byte [esp + 0x113], al
mov edx, edx
mov byte [esp + 0xd4], al
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 dword [esp + 0xed], eax
mov word [esp + 0xf1], ax
mov byte [esp + 0xf3], al
mov cl, cl
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x44]
lea edi, [ecx + eax]
mov esi, esi
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x48]
lea ebp, [eax + edx]
mov ebp, ebp
mov eax, dword [esp + 0x114]
lea ecx, [eax + 1]
nop
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1008fe30
sub eax, ecx
mov esi, eax
mov cl, cl
mov eax, dword [esp + 0x124]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1008fe50
sub eax, edx
mov ebx, eax
mov eax, eax
push edi
lea ecx, [esp + 0xf8]
push 0x10179678
push ecx
call fcn.1010fdb0
add esp, 0xc
mov ah, ah
push ebp
lea edx, [esp + 0xd8]
push 0x10179678
push edx
call fcn.1010fdb0
add esp, 0xc
mov ebp, ebp
test esi, esi
lea eax, [esp + 0xf4]
jne 0x1008feb5
mov edx, dword [esp + 0x114]
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x1008fea5
push edx
pop edx
jmp 0x1008ff2a
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1008feb8
sub eax, edx
add eax, esi
cmp eax, 0x1770
jae 0x1008ff2a
mov ebp, dword [esp + 0x114]
mov edi, ebp
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x1008fed8
mov dx, word [0x10179594]
mov word [edi], dx
mov bh, bh
lea eax, [esp + 0xf4]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1008fef7
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
lea esp, [esp]
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x1008ff10
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 + 0xd4]
jne 0x1008ff50
mov edx, dword [esp + 0x124]
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x1008ff40
mov ecx, ecx
jmp 0x1008ffbe
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1008ff53
sub eax, edx
add eax, ebx
cmp eax, 0x1770
jae 0x1008ffbe
mov ebx, dword [esp + 0x124]
mov edi, ebx
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x1008ff73
mov dx, word [0x10179594]
mov word [edi], dx
mov esi, esi
lea eax, [esp + 0xd4]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x1008ff92
mov edi, ebx
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x1008ffa4
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 ecx, ecx
sub dword [esp + 0x44], 1
jns 0x1008fd11
mov eax, dword [esp + 0x48]
add eax, 1
cmp eax, dword [esp + 0x7c]
mov dword [esp + 0x48], eax
jl 0x1008fd00
jmp 0x100902d2
cmp eax, 3
jne 0x100902d2
mov eax, dword [esp + 0x7c]
add eax, 0xffffffff
mov dword [esp + 0x48], eax
js 0x100902d2
lea ecx, [ecx]
mov eax, dword [esp + 0x78]
add eax, 0xffffffff
mov dword [esp + 0x44], eax
js 0x100902c7
mov eax, dword [esp + 0x48]
imul eax, dword [esp + 0x18]
add eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x44]
lea eax, [eax + ecx*4]
mov edx, edx
mov byte [eax + 3], 0
mov ebx, ebx
mov edx, dword [eax]
push edx
lea edi, [esp + 0x38]
call fcn.1005ab60
add esp, 4
test eax, eax
je 0x100902bc
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x48]
push eax
mov eax, dword [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x20]
push eax
push ecx
push edx
lea edi, [esp + 0x3c]
call fcn.1005b3a0
add esp, 0x18
test eax, eax
je 0x100902bc
xor eax, eax
mov byte [esp + 0xf4], 0
mov dword [esp + 0xf5], eax
mov dword [esp + 0xf9], eax
mov dword [esp + 0xfd], eax
mov dword [esp + 0x101], eax
mov dword [esp + 0x105], eax
mov dword [esp + 0x109], eax
mov dword [esp + 0x10d], eax
mov word [esp + 0x111], ax
mov byte [esp + 0x113], al
mov ah, ah
mov byte [esp + 0xd4], al
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 dword [esp + 0xed], eax
mov word [esp + 0xf1], ax
mov byte [esp + 0xf3], al
push edx
pop edx
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x44]
lea edi, [ecx + eax]
mov bh, bh
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x48]
lea ebp, [eax + edx]
mov edx, edx
mov eax, dword [esp + 0x114]
lea ecx, [eax + 1]
nop
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10090130
sub eax, ecx
mov esi, eax
mov edi, edi
mov eax, dword [esp + 0x124]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10090150
sub eax, edx
mov ebx, eax
mov ah, ah
push edi
lea ecx, [esp + 0xf8]
push 0x10179678
push ecx
call fcn.1010fdb0
add esp, 0xc
mov eax, eax
push ebp
lea edx, [esp + 0xd8]
push 0x10179678
push edx
call fcn.1010fdb0
add esp, 0xc
mov ecx, ecx
test esi, esi
lea eax, [esp + 0xf4]
jne 0x100901b4
mov edx, dword [esp + 0x114]
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x100901a5
nop
jmp 0x10090221
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x100901b7
sub eax, edx
add eax, esi
cmp eax, 0x1770
jae 0x10090221
mov ebp, dword [esp + 0x114]
mov edi, ebp
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x100901d7
mov dx, word [0x10179594]
mov word [edi], dx
mov ch, ch
lea eax, [esp + 0xf4]
mov ecx, eax
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x100901f6
mov edi, ebp
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x10090208
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]
nop
test ebx, ebx
lea eax, [esp + 0xd4]
jne 0x10090247
mov edx, dword [esp + 0x124]
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x10090237
mov ch, ch
jmp 0x100902bc
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10090250
sub eax, edx
add eax, ebx
cmp eax, 0x1770
jae 0x100902bc
mov ebx, dword [esp + 0x124]
mov edi, ebx
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x10090270
mov dx, word [0x10179594]
mov word [edi], dx
mov ah, ah
lea eax, [esp + 0xd4]
mov ecx, eax
nop
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10090290
mov edi, ebx
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x100902a2
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 dl, dl
sub dword [esp + 0x44], 1
jns 0x10090011
sub dword [esp + 0x48], 1
jns 0x10090000
mov edi, dword [esp + 0x114]
cmp byte [edi], 0
je 0x10090355
mov al, 0x73
mov byte [esp + 0x114], 0x25
mov byte [esp + 0x115], al
mov byte [esp + 0x116], 0x7c
mov byte [esp + 0x117], 0x25
mov byte [esp + 0x118], al
mov byte [esp + 0x119], 0
mov ebp, ebp
mov eax, dword [esp + 0x124]
mov esi, dword [esp + 0x11c]
push eax
push edi
lea ecx, [esp + 0x11c]
push ecx
push esi
call fcn.1010fdb0
add esp, 0x10
mov bh, bh
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10090338
sub eax, edx
push eax
push esi
lea ecx, [esp + 0xc0]
call fcn.1000a180
mov al, al
jmp 0x1009035e
mov esi, esi
mov esi, dword [esp + 0x11c]
push esi
call fcn.1010dffc
add esp, 4
mov ah, ah
push edi
call fcn.1010dffc
add esp, 4
mov eax, eax
mov edx, dword [esp + 0x124]
push edx
call fcn.1010dffc
add esp, 4
mov bh, bh
mov eax, dword [esp + 0x14]
push eax
call fcn.1010dffc
xor edi, edi
add esp, 4
mov dword [esp + 0x14], edi
mov edi, edi
mov esi, dword [esp + 0xb4]
push 0xffffffffffffffff
push edi
lea ecx, [esp + 0xc0]
mov ebx, 0xf
push ecx
mov dword [esi + 0x18], ebx
mov dword [esi + 0x14], edi
mov ecx, esi
mov byte [esi + 4], 0
call fcn.10009f70
mov dword [esp + 0xb0], 1
mov byte [esp + 0x138], 4
lea ecx, [esp + 0x4c]
call fcn.1010055d
mov byte [esp + 0x138], 3
lea ecx, [esp + 0x60]
call fcn.1010055d
mov byte [esp + 0x138], 2
mov eax, dword [esp + 0x28]
cmp eax, edi
je 0x10090425
mov edx, dword [esp + 0xb4]
push edx
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x28]
push ecx
push edx
push eax
call fcn.1008ba20
mov eax, dword [esp + 0x38]
push eax
call fcn.100fcea8
add esp, 0x14
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
mov byte [esp + 0x138], 1
mov eax, dword [esp + 0x38]
cmp eax, edi
je 0x1009044a
push eax
call fcn.100fcea8
add esp, 4
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
mov byte [esp + 0x138], 0
cmp dword [esp + 0xd0], 0x10
jb 0x10090478
mov ecx, dword [esp + 0xbc]
push ecx
call fcn.100fcea8
add esp, 4
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xcc], edi
mov byte [esp + 0xbc], 0
mov eax, esi
jmp 0x1009066c
push edi
call fcn.1010dffc
add esp, 4
push ecx
pop ecx
cmp ebx, esi
je 0x100904af
push ebx
call fcn.1010dffc
add esp, 4
mov dl, dl
cmp ebp, esi
je 0x100904be
push ebp
call fcn.1010dffc
add esp, 4
mov al, al
mov edi, dword [esp + 0xb4]
push 0xffffffffffffffff
push esi
lea edx, [esp + 0xc0]
mov ebx, 0xf
mov dword [edi + 0x18], ebx
mov dword [edi + 0x14], esi
push edx
mov ecx, edi
mov byte [edi + 4], 0
call fcn.10009f70
mov dword [esp + 0xb0], 1
mov byte [esp + 0x138], 4
lea ecx, [esp + 0x4c]
call fcn.1010055d
mov byte [esp + 0x138], 3
lea ecx, [esp + 0x60]
call fcn.1010055d
mov byte [esp + 0x138], 2
mov eax, dword [esp + 0x28]
cmp eax, esi
je 0x10090548
mov ecx, dword [esp + 0xb4]
push ecx
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x28]
push edx
push ecx
push eax
call fcn.1008ba20
mov edx, dword [esp + 0x38]
push edx
call fcn.100fcea8
add esp, 0x14
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], esi
mov byte [esp + 0x138], 1
mov eax, dword [esp + 0x38]
cmp eax, esi
je 0x1009056d
push eax
call fcn.100fcea8
add esp, 4
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
mov byte [esp + 0x138], 0
cmp dword [esp + 0xd0], 0x10
jb 0x1009059b
mov eax, dword [esp + 0xbc]
push eax
call fcn.100fcea8
add esp, 4
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xcc], esi
mov byte [esp + 0xbc], 0
mov eax, edi
jmp 0x1009066c
push 0xffffffffffffffff
xor edi, edi
push edi
lea ecx, [esp + 0xc0]
mov esi, 0xf
push ecx
mov dword [ebp + 0x18], esi
mov dword [ebp + 0x14], edi
mov ecx, ebp
mov byte [ebp + 4], 0
call fcn.10009f70
mov dword [esp + 0xb0], 1
mov byte [esp + 0x138], 0
cmp dword [esp + 0xd0], 0x10
jb 0x10090654
mov edx, dword [esp + 0xbc]
push edx
jmp 0x1009064c
fstp st(0)
push 0xffffffffffffffff
xor edi, edi
push edi
lea eax, [esp + 0xc0]
mov esi, 0xf
mov dword [ebp + 0x18], esi
mov dword [ebp + 0x14], edi
push eax
mov ecx, ebp
mov byte [ebp + 4], 0
call fcn.10009f70
mov dword [esp + 0xb0], 1
mov byte [esp + 0x138], 0
cmp dword [esp + 0xd0], 0x10
jb 0x10090654
mov ecx, dword [esp + 0xbc]
push ecx
call fcn.100fcea8
add esp, 4
mov byte [esp + 0xbc], 0
mov dword [esp + 0xcc], edi
mov dword [esp + 0xd0], esi
mov eax, ebp
mov ecx, dword [esp + 0x130]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x118]
xor ecx, esp
call fcn.1010e4d7
add esp, 0x128
ret