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

Disassembly:
push 0xffffffffffffffff
push 0x566692
mov eax, dword fs:[0]
push eax
sub esp, 0x2ec
mov eax, dword [0x586220]
xor eax, esp
mov dword [esp + 0x2e8], eax
push esi
push edi
mov eax, dword [0x586220]
xor eax, esp
push eax
lea eax, [esp + 0x2f8]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x7c], esi
mov ecx, dword [esp + 0x308]
mov dword [esp + 0x8c], ecx
cmp dword [ecx + 4], 0x147
sbb eax, eax
neg eax
or dword [esi + 0x70], eax
mov eax, dword [esi + 0x70]
and eax, 1
je 0x51750e
push dword [esp + 0x310]
push dword [esp + 0x310]
push ecx
mov ecx, esi
call fcn.00516cc0
jmp 0x518150
mov eax, dword [ecx]
mov dword [esi + 0x2b8], eax
test al, 1
jne 0x517521
xor al, al
jmp 0x518150
mov eax, dword [esp + 0x310]
lea edi, [esi + 0x74]
mov dword [edi], eax
lea eax, [ecx + 0x20]
mov dword [esi + 0x2bc], eax
mov ecx, esi
mov eax, dword [esp + 0x30c]
add eax, 0xffffffe0
mov dword [esp + 0x68], edi
mov dword [esi + 0x2c0], eax
mov eax, dword [esi]
mov eax, dword [eax + 0x10]
call eax
test al, al
je 0x517586
lea eax, [esi + 0x18c]
mov ecx, edi
push eax
push dword [esp + 0x90]
call fcn.00519a90
mov eax, dword [edi]
mov ecx, esi
push 0
mov dword [edi + 4], eax
push dword [esi + 0x2c0]
push dword [esi + 0x2bc]
call fcn.00515890
mov eax, dword [esi + 0x2b8]
shr eax, 1
test al, 1
je 0x5175d4
mov eax, dword [esp + 0x8c]
lea edi, [esi + 0xa0]
mov ecx, edi
mov eax, dword [eax + 4]
xor eax, dword [esp + 0x310]
push eax
call fcn.005554d0
push edi
push dword [esp + 0x90]
lea ecx, [esi + 0x74]
call fcn.00519510
push dword [esi + 0x2c0]
mov ecx, edi
push dword [esi + 0x2bc]
call fcn.005556e0
push dword [esp + 0x80]
mov eax, dword [esp + 0x90]
lea ecx, [esp + 0x73]
push ecx
push dword [esi + 0x2c8]
mov dword [esp + 0xa8], 0
movzx edi, word [eax + 8]
push dword [esi + 0x2c4]
mov dword [esp + 0xa0], edi
call fcn.0043a030
mov eax, dword [esi + 0x2c4]
add esp, 0x10
mov dword [esi + 0x2c8], eax
mov ecx, dword [esi + 0x2cc]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, edi
jae 0x517657
cmp edi, 0x15555555
jbe 0x51764b
push 0x41f530
call fcn.00530a74
push edi
lea ecx, [esi + 0x2c4]
call fcn.00519c60
push edi
lea ecx, [esi + 0x2ec]
call fcn.0051a1e0
mov edx, edi
xor ecx, ecx
test edx, edx
jle 0x517682
jmp 0x517670
mov eax, dword [esi + 0x2ec]
mov dword [eax + ecx*4], 0xffffffff
inc ecx
cmp ecx, edx
jl 0x517670
xorps xmm0, xmm0
mov dword [esp + 0x78], 0
movq qword [esp + 0x70], xmm0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
push 0x44
lea ecx, [esp + 0x74]
mov dword [esp + 0x304], 0
call fcn.00459980
cmp dword [esp + 0x90], 0
jle 0x517bfc
nop
mov edi, dword [esp + 0x9c]
lea eax, [esp + 0x2ec]
sub eax, edi
mov ecx, 5
mov dword [esp + 0x88], eax
mov edx, eax
mov dword [esp + 0x94], ecx
mov eax, dword [esi + 0x2b8]
shr eax, 1
test al, 1
je 0x51771d
push edi
lea ecx, [esi + 0xa0]
call fcn.005555e0
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x88]
jmp 0x517726
mov eax, dword [esi + 0x2bc]
mov al, byte [edi + eax]
mov byte [edx + edi], al
inc edi
dec ecx
mov dword [esp + 0x94], ecx
jne 0x5176f5
lea eax, [esp + 0x80]
push eax
lea eax, [esp + 0x2f0]
push eax
call fcn.00516ae0
mov ecx, dword [esp + 0x9c]
xorps xmm0, xmm0
add ecx, eax
movq qword [esp + 0x1f0], xmm0
mov dword [esp + 0x1f8], 0
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x1f0], 0
mov dword [esp + 0x1f4], 0
mov dword [esp + 0x1f8], 0
mov eax, dword [esp + 0x80]
mov byte [esp + 0x300], 1
mov dword [esp + 0x98], eax
test eax, eax
jle 0x517b76
lea eax, [esp + 0x1fc]
sub eax, ecx
mov dword [esp + 0x88], eax
jmp 0x5177c8
mov ecx, dword [esp + 0x9c]
mov edi, ecx
xor ecx, ecx
mov dword [esp + 0x94], ecx
mov eax, dword [esi + 0x2b8]
shr eax, 1
test al, 1
je 0x5177f4
push edi
lea ecx, [esi + 0xa0]
call fcn.005555e0
mov ecx, dword [esp + 0x94]
jmp 0x5177fd
mov eax, dword [esi + 0x2bc]
mov al, byte [edi + eax]
mov byte [esp + ecx + 0x200], al
inc edi
inc ecx
mov dword [esp + 0x94], ecx
cmp ecx, 0x2c
jl 0x5177d3
mov eax, dword [esi]
mov ecx, esi
add dword [esp + 0x9c], 0x2c
sub dword [esp + 0x88], 0x2c
mov eax, dword [eax + 0x10]
call eax
lea edi, [esi + 0x74]
test al, al
je 0x51788f
mov ecx, dword [edi + 4]
xor edx, edx
jmp 0x517840
imul ecx, ecx, 0x6255
add ecx, 0x3619
and ecx, 0xffff
mov al, cl
mov dword [edi + 4], ecx
mov byte [esp + edx + 0x27c], al
inc edx
cmp edx, 0x10
jb 0x517840
movdqu xmm0, xmmword [esp + 0x27c]
lea eax, [esp + 0x200]
push eax
push 0x2c
push eax
lea eax, [esi + 0x190]
push eax
movdqu xmmword [esi + 0x1b8], xmm0
call fcn.00490370
add esp, 0x10
push 0xc0
lea eax, [esp + 0xa4]
push 0
push eax
call fcn.00535f30
add esp, 0xc
lea ecx, [esp + 0xa0]
push esi
call fcn.0044c0d0
lea eax, [esp + 0x200]
mov byte [esp + 0x300], 2
push eax
lea ecx, [esp + 0xa4]
call fcn.00483b10
mov eax, dword [esp + 0x228]
mov ecx, eax
and ecx, 0xc0000000
je 0x517aee
cmp ecx, 0x40000000
je 0x517a29
cmp ecx, 0x80000000
jne 0x517b08
lea ecx, [esp + 0x70]
and eax, 0x3fffffff
push ecx
lea ecx, [esp + 0xa4]
push ecx
push eax
mov ecx, esi
call fcn.00516b90
mov edi, dword [esp + 0x9c]
mov ecx, 4
mov edx, dword [esp + 0x88]
mov dword [esp + 0x1fc], 0
mov dword [esp + 0x94], ecx
jmp 0x517940
mov eax, dword [esi + 0x2b8]
shr eax, 1
test al, 1
je 0x517968
push edi
lea ecx, [esi + 0xa0]
call fcn.005555e0
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x88]
jmp 0x517971
mov eax, dword [esi + 0x2bc]
mov al, byte [edi + eax]
mov byte [edx + edi], al
inc edi
dec ecx
mov dword [esp + 0x94], ecx
jne 0x517940
mov eax, dword [esi]
sub edx, 4
add dword [esp + 0x9c], 4
mov ecx, esi
mov dword [esp + 0x88], edx
mov eax, dword [eax + 0x10]
call eax
test al, al
je 0x517a03
mov esi, dword [esp + 0x68]
xor edx, edx
mov ecx, dword [esi + 4]
jmp 0x5179b0
imul ecx, ecx, 0x6255
add ecx, 0x3619
and ecx, 0xffff
mov al, cl
mov dword [esi + 4], ecx
mov byte [esp + edx + 0x26c], al
inc edx
cmp edx, 0x10
jb 0x5179b0
mov esi, dword [esp + 0x7c]
lea eax, [esp + 0x1fc]
movdqu xmm0, xmmword [esp + 0x26c]
push eax
push 4
push eax
lea eax, [esi + 0x190]
push eax
movdqu xmmword [esi + 0x1b8], xmm0
call fcn.00490370
add esp, 0x10
lea eax, [esp + 0x70]
mov ecx, esi
push eax
lea eax, [esp + 0xa4]
push eax
mov eax, dword [esp + 0x204]
and eax, 0x3fffffff
push eax
call fcn.005167c0
jmp 0x517b08
and eax, 0x3fffffff
lea ecx, [esp + 0x70]
push 0x20
mov dword [esp + 0x98], eax
call fcn.0047fbe0
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
sub eax, ecx
push eax
push ecx
push dword [esp + 0x9c]
mov ecx, esi
mov dword [esp + 0x90], eax
call fcn.00516760
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x10]
call eax
test al, al
je 0x517ad4
mov eax, dword [edi]
mov ecx, dword [esp + 0x94]
mov edi, dword [esp + 0x84]
mov dword [esp + 0x2dc], eax
mov dword [esp + 0x2e4], eax
mov eax, dword [esp + 0x70]
push eax
push edi
mov dword [esp + 0x2e8], ecx
mov dword [esp + 0x2f0], ecx
movdqu xmm0, xmmword [esp + 0x2e4]
push eax
lea eax, [esi + 0x190]
push eax
movdqu xmmword [esi + 0x1b8], xmm0
call fcn.00490370
add esp, 0x10
lea ecx, [esp + 0xa0]
push edi
push dword [esp + 0x74]
call fcn.00483b60
jmp 0x517b08
mov edi, dword [esp + 0x84]
lea ecx, [esp + 0xa0]
push edi
push dword [esp + 0x74]
call fcn.00483b60
jmp 0x517b08
lea ecx, [esp + 0x70]
and eax, 0x3fffffff
push ecx
lea ecx, [esp + 0xa4]
push ecx
push eax
mov ecx, esi
call fcn.00516b90
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0x1f4]
call fcn.0044d3c0
mov dword [esp + 0xa0], 0x41f6a0
mov edi, dword [esp + 0x144]
mov byte [esp + 0x300], 3
mov dword [esp + 0x148], 0
test edi, edi
je 0x517b55
mov ecx, edi
call fcn.00483da0
push edi
call fcn.00534995
add esp, 4
lea ecx, [esp + 0xa0]
mov byte [esp + 0x300], 1
call fcn.0044c310
dec dword [esp + 0x98]
jne 0x5177c1
lea eax, [esp + 0x1f0]
push eax
lea ecx, [esi + 0x2c4]
call fcn.0051a100
mov eax, dword [esp + 0x1f0]
mov byte [esp + 0x300], 0
test eax, eax
je 0x517bef
mov edi, eax
cmp eax, dword [esp + 0x1f4]
je 0x517bc5
mov eax, dword [edi]
mov ecx, edi
push 0
call dword [eax]
add edi, 0xc0
cmp edi, dword [esp + 0x1f4]
jne 0x517ba7
mov eax, dword [esp + 0x1f0]
push eax
call fcn.00534995
add esp, 4
mov dword [esp + 0x1f0], 0
mov dword [esp + 0x1f4], 0
mov dword [esp + 0x1f8], 0
dec dword [esp + 0x90]
jne 0x5176d0
mov eax, dword [esp + 0x8c]
lea edi, [esi + 0x2d8]
push dword [esp + 0x80]
mov dword [esp + 0x88], edi
movzx eax, word [eax + 0xa]
mov dword [esp + 0x94], eax
lea eax, [esp + 0x72]
push eax
push dword [edi + 4]
push dword [edi]
call fcn.0043a0f0
mov eax, dword [edi]
add esp, 0x10
mov dword [edi + 4], eax
mov ecx, dword [edi + 8]
sub ecx, eax
mov eax, 0x38e38e39
imul ecx
mov ecx, dword [esp + 0x90]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, ecx
jae 0x517c7b
cmp ecx, 0x1c71c71
jbe 0x517c6c
push 0x41f530
call fcn.00530a74
push ecx
mov ecx, edi
call fcn.00519d60
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x1fc], 0
test ecx, ecx
jle 0x517f2d
mov edi, edi
mov edi, dword [esp + 0x9c]
xor ecx, ecx
mov dword [esp + 0x98], ecx
mov eax, dword [esi + 0x2b8]
shr eax, 1
test al, 1
je 0x517cc1
push edi
lea ecx, [esi + 0xa0]
call fcn.005555e0
mov ecx, dword [esp + 0x98]
jmp 0x517cca
mov eax, dword [esi + 0x2bc]
mov al, byte [edi + eax]
mov byte [esp + ecx + 0x22c], al
inc edi
inc ecx
mov dword [esp + 0x98], ecx
cmp ecx, 0x20
jl 0x517ca0
mov eax, dword [esi]
mov ecx, esi
add dword [esp + 0x9c], 0x20
mov eax, dword [eax + 0x10]
call eax
test al, al
je 0x517d53
mov esi, dword [esp + 0x68]
xor edx, edx
mov ecx, dword [esi + 4]
lea ecx, [ecx]
imul ecx, ecx, 0x6255
add ecx, 0x3619
and ecx, 0xffff
mov al, cl
mov dword [esi + 4], ecx
mov byte [esp + edx + 0x25c], al
inc edx
cmp edx, 0x10
jb 0x517d00
mov esi, dword [esp + 0x7c]
lea eax, [esp + 0x22c]
movdqu xmm0, xmmword [esp + 0x25c]
push eax
push 0x20
push eax
lea eax, [esi + 0x190]
push eax
movdqu xmmword [esi + 0x1b8], xmm0
call fcn.00490370
add esp, 0x10
push 0x90
lea eax, [esp + 0x164]
push 0
push eax
call fcn.00535f30
xorps xmm0, xmm0
mov dword [esp + 0x1e4], esi
add esp, 0xc
mov dword [esp + 0x1dc], esi
mov dword [esp + 0x1e0], 0
mov dword [esp + 0x1e4], 0
mov dword [esp + 0x1e8], 0
mov dword [esp + 0x1ec], 0
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
mov dword [esp + 0x168], 0
mov dword [esp + 0x16c], 0
mov dword [esp + 0x170], 0
mov dword [esp + 0x174], 0
mov dword [esp + 0x178], 0
movdqu xmmword [esp + 0x17c], xmm0
mov dword [esp + 0x18c], 0
mov dword [esp + 0x1b4], 0
movdqu xmmword [esp + 0x190], xmm0
mov dword [esp + 0x1b0], 0
movdqu xmmword [esp + 0x1a0], xmm0
movdqu xmmword [esp + 0x1b8], xmm0
movdqu xmmword [esp + 0x1c8], xmm0
push dword [esp + 0x1fc]
lea eax, [esp + 0x230]
mov byte [esp + 0x304], 4
push eax
lea ecx, [esp + 0x168]
call fcn.0051d520
mov ecx, dword [esi + 0x2dc]
lea edi, [esi + 0x2d8]
lea eax, [esp + 0x160]
cmp eax, ecx
jae 0x517ed2
mov eax, dword [edi]
lea edx, [esp + 0x160]
cmp eax, edx
ja 0x517ed2
mov ecx, edx
sub ecx, eax
mov eax, 0x38e38e39
imul ecx
mov ecx, dword [edi + 4]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x98], eax
cmp ecx, dword [edi + 8]
jne 0x517ebd
push 1
mov ecx, edi
call fcn.00519fa0
mov eax, dword [esp + 0x98]
mov edx, dword [edi + 4]
lea eax, [eax + eax*8]
shl eax, 4
add eax, dword [edi]
test edx, edx
je 0x517f02
mov esi, eax
mov edi, edx
jmp 0x517ef0
cmp ecx, dword [edi + 8]
jne 0x517ee0
push 1
mov ecx, edi
call fcn.00519fa0
mov eax, dword [edi + 4]
test eax, eax
je 0x517f02
lea esi, [esp + 0x160]
mov edi, eax
mov ecx, 0x24
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x84]
mov eax, dword [esp + 0x1fc]
add dword [edi + 4], 0x90
inc eax
mov byte [esp + 0x300], 0
mov dword [esp + 0x1fc], eax
cmp eax, dword [esp + 0x90]
jl 0x517c90
mov edx, dword [esp + 0x8c]
lea edi, [esi + 0x2d0]
mov ecx, dword [esp + 0x9c]
mov dword [esi + 0x2e4], ecx
mov eax, dword [edx + 0xc]
mov dword [esi + 0x2e8], eax
mov eax, dword [edi]
add ecx, dword [edx + 0xc]
mov dword [esp + 0x9c], ecx
mov ecx, edi
push dword [eax + 4]
call fcn.00440710
mov eax, dword [edi]
xor ecx, ecx
mov dword [esp + 0x84], 0
mov dword [eax + 4], eax
mov eax, dword [edi]
mov dword [eax], eax
mov eax, dword [edi]
mov dword [eax + 8], eax
mov eax, dword [esp + 0x8c]
mov dword [edi + 4], 0
cmp cx, word [eax + 0x10]
jae 0x518124
lea esp, [esp]
mov ecx, dword [esp + 0x9c]
xor edi, edi
mov dword [esp + 0x98], ecx
mov eax, dword [esi + 0x2b8]
shr eax, 1
test al, 1
je 0x517fd1
push ecx
lea ecx, [esi + 0xa0]
call fcn.005555e0
mov ecx, dword [esp + 0x98]
jmp 0x517fda
mov eax, dword [esi + 0x2bc]
mov al, byte [ecx + eax]
mov byte [esp + edi + 0x28c], al
inc ecx
inc edi
mov dword [esp + 0x98], ecx
cmp edi, 0x50
jl 0x517fb0
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x10]
call eax
test al, al
je 0x518063
mov esi, dword [esp + 0x68]
xor edx, edx
mov ecx, dword [esi + 4]
jmp 0x518010
imul ecx, ecx, 0x6255
add ecx, 0x3619
and ecx, 0xffff
mov al, cl
mov dword [esi + 4], ecx
mov byte [esp + edx + 0x24c], al
inc edx
cmp edx, 0x10
jb 0x518010
mov esi, dword [esp + 0x7c]
lea eax, [esp + 0x28c]
movdqu xmm0, xmmword [esp + 0x24c]
push eax
push 0x50
push eax
lea eax, [esi + 0x190]
push eax
movdqu xmmword [esi + 0x1b8], xmm0
call fcn.00490370
add esp, 0x10
movdqu xmm0, xmmword [esp + 0x29c]
mov eax, dword [esp + 0x28c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x290]
movdqu xmmword [esp + 0x1c], xmm0
mov dword [esp + 0x10], eax
movdqu xmm0, xmmword [esp + 0x2ac]
mov eax, dword [esp + 0x294]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x298]
movdqu xmmword [esp + 0x2c], xmm0
mov dword [esp + 0x18], eax
movdqu xmm0, xmmword [esp + 0x2bc]
movdqu xmmword [esp + 0x3c], xmm0
movdqu xmm0, xmmword [esp + 0x2cc]
movdqu xmmword [esp + 0x4c], xmm0
movzx eax, byte [0x58dc44]
lea ecx, [esi + 0x2d0]
add dword [esp + 0x9c], 0x50
push eax
lea eax, [esp + 0x10]
mov byte [esp + 0x304], 5
push eax
push 0
lea eax, [esp + 0x68]
push eax
call fcn.00515380
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x84]
inc edx
mov byte [esp + 0x300], 0
mov dword [esp + 0x84], edx
movzx eax, word [eax + 0x10]
cmp edx, eax
jl 0x517fa0
push 0
push 0
push ecx
mov eax, esp
lea ecx, [esp + 0x70]
push ecx
mov ecx, esi
mov dword [eax], 1
mov eax, dword [esi]
call dword [eax + 8]
mov eax, dword [esp + 0x70]
test eax, eax
je 0x51814e
push eax
call fcn.00534995
add esp, 4
mov al, 1
mov ecx, dword [esp + 0x2f8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [esp + 0x2e8]
xor ecx, esp
call fcn.00535482
add esp, 0x2f8
ret 0xc