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

Disassembly:
push 0xffffffffffffffff
push 0x611692
mov eax, dword fs:[0]
push eax
sub esp, 0x2ec
mov eax, dword [0x631220]
xor eax, esp
mov dword [esp + 0x2e8], eax
push esi
push edi
mov eax, dword [0x631220]
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 0x5c250e
push dword [esp + 0x310]
push dword [esp + 0x310]
push ecx
mov ecx, esi
call fcn.005c1cc0
jmp 0x5c3150
mov eax, dword [ecx]
mov dword [esi + 0x2b8], eax
test al, 1
jne 0x5c2521
xor al, al
jmp 0x5c3150
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 0x5c2586
lea eax, [esi + 0x18c]
mov ecx, edi
push eax
push dword [esp + 0x90]
call fcn.005c4a90
mov eax, dword [edi]
mov ecx, esi
push 0
mov dword [edi + 4], eax
push dword [esi + 0x2c0]
push dword [esi + 0x2bc]
call fcn.005c0890
mov eax, dword [esi + 0x2b8]
shr eax, 1
test al, 1
je 0x5c25d4
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.006004d0
push edi
push dword [esp + 0x90]
lea ecx, [esi + 0x74]
call fcn.005c4510
push dword [esi + 0x2c0]
mov ecx, edi
push dword [esi + 0x2bc]
call fcn.006006e0
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.004e5030
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 0x5c2657
cmp edi, 0x15555555
jbe 0x5c264b
push 0x4ca530
call fcn.005dba74
push edi
lea ecx, [esi + 0x2c4]
call fcn.005c4c60
push edi
lea ecx, [esi + 0x2ec]
call fcn.005c51e0
mov edx, edi
xor ecx, ecx
test edx, edx
jle 0x5c2682
jmp 0x5c2670
mov eax, dword [esi + 0x2ec]
mov dword [eax + ecx*4], 0xffffffff
inc ecx
cmp ecx, edx
jl 0x5c2670
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.00504980
cmp dword [esp + 0x90], 0
jle 0x5c2bfc
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 0x5c271d
push edi
lea ecx, [esi + 0xa0]
call fcn.006005e0
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x88]
jmp 0x5c2726
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 0x5c26f5
lea eax, [esp + 0x80]
push eax
lea eax, [esp + 0x2f0]
push eax
call fcn.005c1ae0
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 0x5c2b76
lea eax, [esp + 0x1fc]
sub eax, ecx
mov dword [esp + 0x88], eax
jmp 0x5c27c8
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 0x5c27f4
push edi
lea ecx, [esi + 0xa0]
call fcn.006005e0
mov ecx, dword [esp + 0x94]
jmp 0x5c27fd
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 0x5c27d3
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 0x5c288f
mov ecx, dword [edi + 4]
xor edx, edx
jmp 0x5c2840
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 0x5c2840
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.0053b370
add esp, 0x10
push 0xc0
lea eax, [esp + 0xa4]
push 0
push eax
call fcn.005e0f30
add esp, 0xc
lea ecx, [esp + 0xa0]
push esi
call fcn.004f70d0
lea eax, [esp + 0x200]
mov byte [esp + 0x300], 2
push eax
lea ecx, [esp + 0xa4]
call fcn.0052eb10
mov eax, dword [esp + 0x228]
mov ecx, eax
and ecx, 0xc0000000
je 0x5c2aee
cmp ecx, 0x40000000
je 0x5c2a29
cmp ecx, 0x80000000
jne 0x5c2b08
lea ecx, [esp + 0x70]
and eax, 0x3fffffff
push ecx
lea ecx, [esp + 0xa4]
push ecx
push eax
mov ecx, esi
call fcn.005c1b90
mov edi, dword [esp + 0x9c]
mov ecx, 4
mov edx, dword [esp + 0x88]
mov dword [esp + 0x1fc], 0
mov dword [esp + 0x94], ecx
jmp 0x5c2940
mov eax, dword [esi + 0x2b8]
shr eax, 1
test al, 1
je 0x5c2968
push edi
lea ecx, [esi + 0xa0]
call fcn.006005e0
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x88]
jmp 0x5c2971
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 0x5c2940
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 0x5c2a03
mov esi, dword [esp + 0x68]
xor edx, edx
mov ecx, dword [esi + 4]
jmp 0x5c29b0
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 0x5c29b0
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.0053b370
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.005c17c0
jmp 0x5c2b08
and eax, 0x3fffffff
lea ecx, [esp + 0x70]
push 0x20
mov dword [esp + 0x98], eax
call fcn.0052abe0
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.005c1760
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x10]
call eax
test al, al
je 0x5c2ad4
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.0053b370
add esp, 0x10
lea ecx, [esp + 0xa0]
push edi
push dword [esp + 0x74]
call fcn.0052eb60
jmp 0x5c2b08
mov edi, dword [esp + 0x84]
lea ecx, [esp + 0xa0]
push edi
push dword [esp + 0x74]
call fcn.0052eb60
jmp 0x5c2b08
lea ecx, [esp + 0x70]
and eax, 0x3fffffff
push ecx
lea ecx, [esp + 0xa4]
push ecx
push eax
mov ecx, esi
call fcn.005c1b90
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0x1f4]
call fcn.004f83c0
mov dword [esp + 0xa0], 0x4ca6a0
mov edi, dword [esp + 0x144]
mov byte [esp + 0x300], 3
mov dword [esp + 0x148], 0
test edi, edi
je 0x5c2b55
mov ecx, edi
call fcn.0052eda0
push edi
call fcn.005df995
add esp, 4
lea ecx, [esp + 0xa0]
mov byte [esp + 0x300], 1
call fcn.004f7310
dec dword [esp + 0x98]
jne 0x5c27c1
lea eax, [esp + 0x1f0]
push eax
lea ecx, [esi + 0x2c4]
call fcn.005c5100
mov eax, dword [esp + 0x1f0]
mov byte [esp + 0x300], 0
test eax, eax
je 0x5c2bef
mov edi, eax
cmp eax, dword [esp + 0x1f4]
je 0x5c2bc5
mov eax, dword [edi]
mov ecx, edi
push 0
call dword [eax]
add edi, 0xc0
cmp edi, dword [esp + 0x1f4]
jne 0x5c2ba7
mov eax, dword [esp + 0x1f0]
push eax
call fcn.005df995
add esp, 4
mov dword [esp + 0x1f0], 0
mov dword [esp + 0x1f4], 0
mov dword [esp + 0x1f8], 0
dec dword [esp + 0x90]
jne 0x5c26d0
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.004e50f0
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 0x5c2c7b
cmp ecx, 0x1c71c71
jbe 0x5c2c6c
push 0x4ca530
call fcn.005dba74
push ecx
mov ecx, edi
call fcn.005c4d60
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x1fc], 0
test ecx, ecx
jle 0x5c2f2d
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 0x5c2cc1
push edi
lea ecx, [esi + 0xa0]
call fcn.006005e0
mov ecx, dword [esp + 0x98]
jmp 0x5c2cca
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 0x5c2ca0
mov eax, dword [esi]
mov ecx, esi
add dword [esp + 0x9c], 0x20
mov eax, dword [eax + 0x10]
call eax
test al, al
je 0x5c2d53
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 0x5c2d00
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.0053b370
add esp, 0x10
push 0x90
lea eax, [esp + 0x164]
push 0
push eax
call fcn.005e0f30
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.005c8520
mov ecx, dword [esi + 0x2dc]
lea edi, [esi + 0x2d8]
lea eax, [esp + 0x160]
cmp eax, ecx
jae 0x5c2ed2
mov eax, dword [edi]
lea edx, [esp + 0x160]
cmp eax, edx
ja 0x5c2ed2
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 0x5c2ebd
push 1
mov ecx, edi
call fcn.005c4fa0
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 0x5c2f02
mov esi, eax
mov edi, edx
jmp 0x5c2ef0
cmp ecx, dword [edi + 8]
jne 0x5c2ee0
push 1
mov ecx, edi
call fcn.005c4fa0
mov eax, dword [edi + 4]
test eax, eax
je 0x5c2f02
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 0x5c2c90
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.004eb710
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 0x5c3124
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 0x5c2fd1
push ecx
lea ecx, [esi + 0xa0]
call fcn.006005e0
mov ecx, dword [esp + 0x98]
jmp 0x5c2fda
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 0x5c2fb0
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x10]
call eax
test al, al
je 0x5c3063
mov esi, dword [esp + 0x68]
xor edx, edx
mov ecx, dword [esi + 4]
jmp 0x5c3010
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 0x5c3010
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.0053b370
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 [0x638c44]
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.005c0380
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 0x5c2fa0
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 0x5c314e
push eax
call fcn.005df995
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.005e0482
add esp, 0x2f8
ret 0xc