Function at 0x1001a5d0
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
add esp, 0xffffff8c
lea ecx, [eax + 0x7f8]
push ebx
cmp eax, ecx
mov ebx, eax
push esi
push edi
mov dword [esp + 0x40], ebx
mov dword [esp + 0x58], ecx
ja 0x1001a9f5
mov esi, dword [esp + 0x5c]
jmp 0x1001a600
cmp ebx, 0x28a
ja 0x1001a7f7
je 0x1001a9f5
cmp ebx, 0x17a
ja 0x1001a75f
je 0x1001a718
lea eax, [ebx - 0x6a]
cmp eax, 0xcc
ja case.0x1001a821.13177
movzx eax, byte [eax + 0x1001aa24]
jmp dword [eax*4 + 0x1001aa10]
mov edi, dword [esp + 0x3c]
mov eax, 0xf2b9d649
mov esi, edi
imul edi
mov eax, 0xf2b9d649
add edx, edi
sar edx, 0xa
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, ecx
imul ecx, ecx, 0x319
imul edx, edx, 0x438
sub esi, edx
imul esi, esi, 0x319
add esi, 0xcc
imul esi
add edx, esi
sar edx, 0xa
mov eax, edx
add ecx, edx
shr eax, 0x1f
add eax, ecx
lea ecx, [edi + edi*2]
lea edx, [eax + ecx*4 - 1]
mov dword [esp + 0x38], edx
jmp case.0x1001a821.13177
sub dword [esp + 0x30], 7
jns case.0x1001a821.13177
mov eax, dword [ebp + 0xc]
mov edx, dword [eax]
lea eax, [edx*8]
sub eax, edx
inc eax
cdq
mov ecx, 0x13
idiv ecx
xor eax, eax
cmp edx, 7
setl al
sub eax, 0xfffffff4
add dword [esp + 0x30], eax
jmp case.0x1001a821.13177
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
dec eax
cdq
mov edi, 0x13
idiv edi
mov edi, eax
mov eax, 0x6bca1af3
imul edi, edi, 0xeb
mov ecx, edx
lea edx, [ecx*8]
sub edx, ecx
lea ecx, [ecx + ecx*2]
inc edx
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, dword [esp + 0x30]
lea edx, [eax + ecx*4]
add edi, edx
mov dword [esp + 0x3c], edi
jmp case.0x1001a821.13177
mov ecx, dword [esp + 0x38]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea eax, [eax + eax*2]
add eax, eax
add eax, eax
lea edi, [eax + eax]
mov eax, 0xd4629b7
imul esi
sub edx, esi
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
sub eax, edi
add eax, ecx
imul eax, eax, 0x438
add eax, esi
mov dword [esp + 0x44], eax
jmp case.0x1001a821.13177
mov eax, ebx
sub eax, 0x1be
je 0x1001a7bc
sub eax, 0x44
je 0x1001a792
sub eax, 0x44
jne case.0x1001a821.13177
mov edx, dword [esp + 0x78]
mov edi, dword [ebp + 8]
mov ecx, dword [esp + 0x74]
mov dword [edi], ecx
mov ecx, dword [esp + 0x7c]
mov dword [edi + 4], edx
mov dword [edi + 8], ecx
jmp case.0x1001a821.13177
mov eax, 0xf2b9d649
mov ecx, dword [esp + 0x44]
imul ecx
mov eax, ecx
add edx, ecx
sar edx, 0xa
mov edi, edx
shr edi, 0x1f
add edx, edi
imul edx, edx, 0x438
sub eax, edx
mov dword [esp + 0x7c], eax
jmp case.0x1001a821.13177
mov ecx, dword [esp + 0x38]
mov edi, ecx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x3c]
imul edx, edx, 0x1d
lea edx, [edx + eax + 1]
lea eax, [eax + eax*2]
mov dword [esp + 0x74], edx
add eax, eax
add eax, eax
lea edx, [eax + eax]
sub edi, edx
mov dword [esp + 0x78], edi
jmp case.0x1001a821.13177
cmp ebx, 0x343a
ja 0x1001a8e9
je 0x1001a8c4
lea eax, [ebx - 0x3378]
cmp eax, 0x88
ja case.0x1001a821.13177
movzx eax, byte [eax + 0x1001ab08]
jmp dword [eax*4 + 0x1001aaf4]
push 0x40
call fcn.1001ca11
sub esp, 0xfffffffc
push 0xa
push eax
mov dword [esp + 0x64], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
call fcn.1002d4af
jmp 0x1001a9e1
mov edi, dword [ebp + 8]
mov edx, dword [esp + 0x34]
xor ecx, ecx
cmp dword [esp + 0x2c], edx
sete cl
mov dword [edi], ecx
jmp case.0x1001a821.13177
cmp dword [esp + 0x34], 0
mov dword [esp + 0x2c], 0
jbe case.0x1001a821.13177
mov edx, dword [ebp + 0xc]
mov ecx, dword [esp + 0x2c]
movsx eax, byte [ecx + edx]
push eax
call fcn.1001d4fc
add esp, 4
or eax, eax
je case.0x1001a821.13177
mov edi, dword [esp + 0x2c]
inc edi
mov dword [esp + 0x2c], edi
cmp edi, dword [esp + 0x34]
jb 0x1001a874
jmp case.0x1001a821.13177
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x2c], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1001a8b2
sub eax, edx
mov dword [esp + 0x34], eax
jmp case.0x1001a821.13177
mov eax, 0x358f
cmp eax, eax
je 0x1001a9ff
add eax, 0x5c
cmp eax, 0x358f
jbe 0x1001a8cb
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
mov dword [esp + 0x30], edx
jmp case.0x1001a821.13177
mov eax, ebx
sub eax, 0x3444
je 0x1001a9f5
sub eax, 0x36da
je 0x1001a996
sub eax, 0x44
jne case.0x1001a821.13177
test byte [esp + 0x54], 1
jne case.0x1001a821.13177
mov edi, 0xb53
mov eax, edi
sub eax, 0xb53
je 0x1001a94b
sub eax, 0x5f
je 0x1001a93c
sub eax, 0x5f
jne 0x1001a989
mov eax, dword [esp + 0x50]
push eax
call fcn.1001ca1c
add esp, 4
jmp 0x1001a989
mov ecx, dword [esp + 0x48]
push ecx
call fcn.1001ca1c
add esp, 4
jmp 0x1001a989
mov edx, dword [ebp + 0x10]
fld qword [esp + 0x68]
sub esp, 8
mov eax, dword [edx]
fstp qword [esp]
push eax
lea ebx, [esp + 0x58]
call fcn.10017a70
fld qword [esp + 0x6c]
mov ecx, dword [ebp + 0x10]
fstp qword [esp + 4]
mov edx, dword [ecx]
add esp, 4
push edx
mov dword [esp + 0x54], eax
call fcn.10017a70
mov ebx, dword [esp + 0x4c]
sub esp, 0xfffffff4
mov dword [esp + 0x50], eax
add edi, 0x5f
cmp edi, 0xc11
jbe 0x1001a91a
jmp case.0x1001a821.13177
add esp, 0xfffffff4
mov edi, dword [ebp + 0xc]
mov eax, esp
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov dword [eax], ecx
mov ecx, dword [edi + 8]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
call fcn.10017a50
mov eax, esp
mov edx, dword [edi]
mov ecx, dword [edi + 4]
mov dword [eax], edx
mov edx, dword [edi + 8]
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
call fcn.10013480
add esp, 0xc
push eax
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x70]
push ecx
call fcn.100161c0
mov dword [esp + 0x60], eax
add esp, 0xc
sub ebx, 0xffffffbc
mov dword [esp + 0x40], ebx
cmp ebx, dword [esp + 0x58]
jbe 0x1001a600
mov eax, dword [ebp + 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x5c]
pop edi
pop esi
mov dword [eax], edx
pop ebx
mov esp, ebp
pop ebp
ret