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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x458
mov ecx, dword [ebp + 0xc]
call 0x499937
pop eax
mov edx, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
movdqa xmm0, xmmword [0x5ac470]
lea edi, [esp + 0xd8]
mov dword [esp + 0x130], 1
mov dword [esp + 0x10], 4
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], 4
mov dword [esp + 0x20], 0
mov dword [esp + 0x134], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0xc], eax
mov dword [esp + 0x50], edi
mov eax, dword [ecx + 0x48]
movzx ebx, byte [ecx + 0x4d]
movzx ecx, byte [ecx + 0x4c]
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], edx
mov dword [esp + 0x138], eax
mov byte [esp + 0x13d], bl
mov byte [esp + 0x13e], cl
mov byte [esp + 0x13c], cl
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 4
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 4
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], 4
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], 4
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0
mov dword [esp + 0x118], 0
mov dword [esp + 0x11c], 1
movdqu xmmword [esp + 0x120], xmm0
lea ecx, [esp + 0x140]
lea edx, [esp + 0x50]
call fcn.004d4b30
mov esi, dword [ebp + 8]
cmp dword [esp + 0x140], 0x110015
jne 0x499ae2
movdqu xmm0, xmmword [esp + 0x144]
movdqu xmm1, xmmword [esp + 0x154]
movdqu xmm2, xmmword [esp + 0x164]
movdqu xmm3, xmmword [esp + 0x174]
jmp 0x499bca
mov ebx, dword [esp + 0x1bc]
mov eax, dword [esp + 0x1b4]
mov ecx, dword [esp + 0x1b8]
test ebx, ebx
mov dword [esp], eax
mov dword [esp + 8], ecx
je 0x499b29
mov eax, dword [esp]
mov esi, dword [0x607460]
lea edi, [eax + 4]
jmp 0x499b16
add edi, 0x24
dec ebx
je 0x499b29
cmp dword [edi], 0
je 0x499b10
push dword [edi - 4]
push 0
push dword [esi]
call sub.KERNEL32.dll_HeapFree
jmp 0x499b10
cmp dword [esp + 8], 0
je 0x499b41
mov eax, dword [0x607460]
push dword [esp]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
movsd xmm7, qword [esp + 0x194]
movsd xmm6, qword [esp + 0x19c]
mov eax, dword [esp + 0x140]
movq xmm5, qword [esp + 0x18c]
movdqu xmm0, xmmword [esp + 0x144]
movdqu xmm1, xmmword [esp + 0x154]
movdqu xmm2, xmmword [esp + 0x164]
movdqu xmm3, xmmword [esp + 0x174]
movq xmm4, qword [esp + 0x184]
mov esi, dword [ebp + 8]
movsd qword [esp + 0x30], xmm7
movsd qword [esp + 0x38], xmm6
movsd xmm7, qword [esp + 0x1a4]
movq xmm6, qword [esp + 0x1ac]
cmp eax, 0x110015
movq qword [esp + 0x28], xmm5
movsd qword [esp + 0x40], xmm7
movq qword [esp + 0x48], xmm6
jne 0x499c43
movdqu xmmword [esi + 8], xmm0
movdqu xmmword [esi + 0x18], xmm1
movdqu xmmword [esi + 0x28], xmm2
movdqu xmmword [esi + 0x38], xmm3
mov dword [esi], 0
mov dword [esi + 4], 0
lea ecx, [esp + 0xd8]
call fcn.00480690
mov ecx, 4
xor ebx, ebx
inc ebx
mov dword [esp], ecx
nop word cs:[eax + eax]
nop dword [eax]
cmp ebx, 1
je 0x499c22
lea edi, [ecx + 0x74]
dec ebx
call fcn.0047fbc0
mov ecx, edi
jmp 0x499c10
cmp dword [esp + 0x14], 0
je 0x49a63d
mov eax, dword [0x607460]
push dword [esp]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x49a63d
movdqu xmmword [esp + 0x78], xmm1
movsd xmm1, qword [esp + 0x48]
lea ecx, [esp + 0xb0]
movdqu xmmword [esp + 0x88], xmm2
movdqu xmmword [esp + 0x98], xmm3
movq qword [esp + 0xa8], xmm4
mov dword [esp + 0x64], eax
movdqu xmmword [esp + 0x68], xmm0
movsd xmm2, qword [esp + 0x40]
movsd qword [esp + 0x160], xmm1
movsd qword [ecx + 0x20], xmm1
movsd xmm1, qword [esp + 0x38]
movsd qword [esp + 0x158], xmm2
movsd qword [ecx + 0x18], xmm2
movq xmm2, qword [esp + 0x30]
movsd qword [esp + 0x150], xmm1
movsd qword [ecx + 0x10], xmm1
movq xmm1, qword [esp + 0x28]
movq qword [esp + 0x148], xmm2
movq qword [ecx + 8], xmm2
movq qword [esp + 0x140], xmm1
movq qword [ecx], xmm1
lea ecx, [esp + 0xd8]
call fcn.00480690
lea edi, [esp + 0x140]
lea esi, [esp + 0x64]
mov ecx, 0x1d
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x10]
call fcn.00484d40
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
imul eax, ebx, 0x74
add eax, esi
push 0x74
lea ecx, [esp + 0x144]
push ecx
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
inc ebx
mov dword [esp + 0x18], ebx
jne 0x499d3a
mov ebx, dword [ebp + 0xc]
mov esi, 4
mov dword [esp], 0
jmp 0x49a05e
mov ecx, dword [ebp + 0xc]
movzx eax, word [ecx + 0x45]
mov word [esp + 0x3c], ax
mov eax, dword [ecx + 0x41]
mov dword [esp + 0x38], eax
movzx eax, byte [ecx + 0x40]
movzx ecx, byte [ecx + 0x47]
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 4
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov byte [esp + 0x3f], al
mov byte [esp + 0x3e], cl
lea eax, [esp + 0x28]
mov dword [esp], esi
push esi
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push eax
lea eax, [esp + 0x74]
push eax
call fcn.004e7890
add esp, 0x14
mov ecx, dword [ebp + 8]
cmp byte [esp + 0x88], 7
jne 0x499ea3
mov eax, dword [esp + 0x7c]
movq xmm0, qword [esp + 0x74]
movq xmm2, qword [esp + 0x6c]
movq xmm1, qword [esp + 0x64]
mov dword [esp + 0x60], eax
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x2c]
movq qword [esp + 0x50], xmm2
movq qword [esp + 0x58], xmm0
movq qword [esp + 0xe0], xmm2
movq qword [esp + 0xe8], xmm0
movq qword [esp + 0xd8], xmm1
mov dword [esp + 8], eax
mov eax, dword [esp + 0x34]
test eax, eax
je 0x499fa6
mov edi, dword [esp + 8]
xor esi, esi
jmp 0x499e31
mov eax, dword [esp]
add edi, 0x1c
inc esi
dec eax
je 0x499fa6
mov dword [esp], eax
mov eax, dword [edi]
mov edx, 0
add eax, 0xfffffff8
movzx ecx, ax
lea eax, [ecx + 1]
cmp cx, 8
cmovae eax, edx
cmp eax, 3
ja 0x499e23
mov eax, dword [eax*4 + 0x49a8c4]
lea ecx, [esi + esi*8]
lea ebx, [ecx + ecx*2]
add ebx, esi
add ebx, dword [esp + 8]
add eax, dword [esp + 0xc]
jmp eax
movsd xmm0, qword [esp + 0x84]
movsd xmm1, qword [esp + 0x6c]
mov esi, dword [esp + 0x34]
movsd qword [esp + 0x160], xmm0
movsd xmm0, qword [esp + 0x7c]
movsd qword [esp + 0x148], xmm1
movsd qword [esp + 0x58], xmm1
inc esi
movsd qword [esp + 0x158], xmm0
movsd xmm0, qword [esp + 0x74]
movsd qword [esp + 0x150], xmm0
movsd xmm0, qword [esp + 0x64]
mov eax, dword [esp + 0x150]
movsd qword [esp + 0x140], xmm0
movsd qword [esp + 0x50], xmm0
movsd xmm1, qword [esp + 0x174]
movsd xmm2, qword [esp + 0x15c]
mov dword [esp + 0x60], eax
movq xmm0, qword [esp + 0x16c]
mov eax, dword [esp + 0x60]
movsd qword [ecx + 0x40], xmm1
movsd xmm1, qword [esp + 0x164]
movsd qword [ecx + 0x28], xmm2
movq xmm2, qword [esp + 0x50]
movq qword [ecx + 0x38], xmm0
movsd qword [ecx + 0x30], xmm1
movsd xmm1, qword [esp + 0x154]
movsd qword [ecx + 0x20], xmm1
movq xmm1, qword [esp + 0x58]
mov dword [ecx + 8], 0x1f
movq qword [ecx + 0xc], xmm2
mov dword [ecx + 0x1c], eax
movq qword [ecx + 0x14], xmm1
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0xc], ecx
nop dword [eax]
cmp esi, 1
je 0x49a543
lea edi, [ecx + 0x1c]
dec esi
call fcn.004815a0
mov ecx, edi
jmp 0x499f90
cmp dword [esp + 0x30], 0
je 0x499fbf
mov eax, dword [0x607460]
push dword [esp + 8]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0xf0]
movq xmm0, qword [esp + 0xe8]
movq xmm2, qword [esp + 0xd8]
movq xmm1, qword [esp + 0xe0]
mov dword [esp + 0x158], eax
movq qword [esp + 0x150], xmm0
movq qword [esp + 0x148], xmm1
movq qword [esp + 0x140], xmm2
lea ecx, [esp + 0x1c]
call fcn.00484c90
mov ebx, dword [ebp + 0xc]
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
movq xmm0, qword [esp + 0x140]
movq xmm1, qword [esp + 0x148]
movq xmm2, qword [esp + 0x150]
mov ecx, dword [esp + 0x158]
lea eax, [edx + edx*8]
lea eax, [eax + eax*2]
add eax, edx
inc edx
mov dword [esi + eax + 0x18], ecx
movq qword [esi + eax + 0x10], xmm2
movq qword [esi + eax + 8], xmm1
movq qword [esi + eax], xmm0
mov dword [esp], edx
mov dword [esp + 0x24], edx
movzx eax, byte [ebx + 0x30]
movzx ecx, byte [ebx + 0x36]
movzx edx, byte [ebx + 0x37]
mov ah, byte [ebx + 0x38]
cmp al, 3
je 0x49a090
cmp al, 2
je 0x49a090
mov edi, dword [ebx + 0x28]
mov dword [esp + 8], edi
lock inc dword [edi]
jle 0x49a654
mov edi, dword [ebx + 0x2c]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 8]
mov byte [esp + 0x9a], cl
mov byte [esp + 0x9b], dl
mov edx, dword [esp + 0xc]
movzx ecx, byte [ebx + 0x3e]
mov byte [esp + 0x9c], ah
mov dword [esp + 0x8c], edi
mov edi, dword [ebx + 0x18]
mov dword [esp + 0x90], edx
mov edx, dword [ebx + 8]
mov byte [esp + 0x94], al
mov byte [esp + 0xa2], cl
mov ecx, dword [ebx + 0x10]
xor eax, eax
test edx, edx
setne al
cmp edx, 2
cmove eax, edx
mov edx, dword [ebx + 0xc]
mov dword [esp + 0x6c], eax
xor eax, eax
test ecx, ecx
setne al
cmp ecx, 2
cmove eax, ecx
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], eax
xor eax, eax
test edi, edi
mov edx, dword [ebx + 0x14]
setne al
cmp edi, 2
cmove eax, edi
mov edi, dword [ebx]
mov dword [esp + 0x78], edx
mov edx, dword [ebx + 4]
mov dword [esp + 0x64], edi
mov edi, dword [ebx + 0x20]
mov dword [esp + 0x68], edx
mov edx, dword [ebx + 0x1c]
mov dword [esp + 0x7c], eax
xor eax, eax
test edi, edi
setne al
cmp edi, 2
cmove eax, edi
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], eax
mov eax, dword [ebx + 0x24]
mov dword [esp + 0x88], eax
mov eax, dword [ebx + 0x39]
mov dword [esp + 0x9d], eax
movzx eax, byte [ebx + 0x3d]
mov byte [esp + 0xa1], al
movzx eax, word [ebx + 0x34]
mov word [esp + 0x98], ax
mov eax, dword [esp]
test eax, eax
je 0x49a25d
lea ebx, [eax*4]
mov eax, dword [0x607474]
mov edi, dword [0x607460]
movzx eax, byte [eax]
mov eax, dword [edi]
test eax, eax
jne 0x49a1a1
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x49a647
mov dword [edi], eax
push ebx
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x49a647
mov edi, eax
xor eax, eax
cmp dword [esp], 8
lea edx, [esp + 0x140]
jb 0x49a242
mov eax, dword [esp]
movdqa xmm0, xmmword [0x5ac480]
movdqa xmm1, xmmword [0x5ac490]
movdqa xmm3, xmmword [str.pppp_b_b_b_b]
movdqa xmm4, xmmword [0x5ac4b0]
movd xmm2, esi
xor ecx, ecx
pshufd xmm2, xmm2, 0
and eax, 0xfffffff8
nop word cs:[eax + eax]
nop
movdqa xmm5, xmm0
pshufd xmm6, xmm0, 0xf5
paddd xmm0, xmm4
pmuludq xmm5, xmm1
pmuludq xmm6, xmm1
pshufd xmm5, xmm5, 0xe8
pshufd xmm6, xmm6, 0xe8
punpckldq xmm5, xmm6
paddd xmm5, xmm2
movdqu xmmword [edi + ecx*4], xmm5
paddd xmm5, xmm3
movdqu xmmword [edi + ecx*4 + 0x10], xmm5
add ecx, 8
cmp eax, ecx
jne 0x49a200
cmp dword [esp], eax
je 0x49a269
lea ecx, [eax + eax*8]
add esi, eax
lea ecx, [ecx + ecx*2]
add esi, ecx
mov ecx, dword [esp]
nop
mov dword [edi + eax*4], esi
inc eax
add esi, 0x1c
cmp ecx, eax
jne 0x49a250
jmp 0x49a269
mov edi, 4
lea edx, [esp + 0x140]
movsd xmm1, qword [esp + 0x94]
movsd xmm2, qword [esp + 0x8c]
movq xmm0, qword [esp + 0x9c]
movsd qword [esp + 0x170], xmm1
movsd xmm1, qword [esp + 0x84]
movsd qword [esp + 0x168], xmm2
movsd xmm2, qword [esp + 0x7c]
movq qword [esp + 0x178], xmm0
movsd qword [esp + 0x160], xmm1
movsd xmm1, qword [esp + 0x74]
movsd qword [esp + 0x158], xmm2
movq xmm2, qword [esp + 0x64]
movsd qword [esp + 0x150], xmm1
movq xmm1, qword [esp + 0x6c]
movq qword [esp + 0x140], xmm2
movq qword [esp + 0x148], xmm1
mov ebx, dword [esp]
push ebx
push edi
push edx
call fcn.00499100
add esp, 0xc
mov esi, dword [ebp + 8]
mov dword [esp + 0xc], eax
mov dword [esp + 0x28], eax
lea eax, [esp + 0x28]
push ebx
push edi
push eax
lea eax, [esp + 0x14c]
push eax
call fcn.0049c160
add esp, 0x10
mov eax, dword [esp + 0x140]
cmp eax, 2
jne 0x49a4a2
mov esi, dword [esp + 0x144]
mov ebx, dword [esp + 0x148]
mov dword [esp + 0xd8], esi
mov dword [esp + 0xdc], ebx
lock inc dword [esi]
jle 0x49a654
mov eax, dword [0x607474]
mov dword [esp + 0x140], esi
mov dword [esp + 0x144], ebx
movzx eax, byte [eax]
mov eax, dword [0x607460]
mov eax, dword [eax]
test eax, eax
jne 0x49a388
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x49a658
mov ecx, dword [0x607460]
mov dword [ecx], eax
push 8
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x49a658
mov dword [eax], esi
mov dword [eax + 4], ebx
mov dword [esp + 0x438], 0
mov byte [esp + 0x43c], 0
mov dword [esp + 0x440], 4
mov dword [esp + 0x444], 0
mov dword [esp + 0x448], 0
mov dword [esp + 0x140], eax
mov eax, dword [0x607474]
mov dword [esp + fcn.0047f5e0], 0x5ae570
mov dword [esp + 0x44c], 0
mov dword [esp + 0x148], 2
movzx eax, byte [eax]
mov eax, dword [0x607460]
mov eax, dword [eax]
test eax, eax
jne 0x49a423
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x49a666
mov ecx, dword [0x607460]
mov dword [ecx], eax
push 0x310
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x49a666
mov ecx, eax
push 0x310
lea eax, [esp + 0x144]
push eax
mov dword [esp + 0x10], ecx
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0xc]
mov dword [esp + 0x148], esi
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x150], eax
mov eax, dword [0x607474]
mov dword [esp + 0x140], 1
mov dword [esp + 0x144], 1
movzx eax, byte [eax]
mov eax, dword [0x607460]
mov eax, dword [eax]
test eax, eax
je 0x49a567
mov esi, dword [ebp + 8]
jmp 0x49a57f
movsd xmm1, qword [esp + 0x16c]
movsd xmm2, qword [esp + 0x174]
mov ecx, dword [esp + 0x184]
movq xmm0, qword [esp + 0x17c]
movsd qword [esi + 0x2c], xmm1
movsd xmm1, qword [esp + 0x15c]
movsd qword [esi + 0x34], xmm2
movsd xmm2, qword [esp + 0x164]
mov dword [esi + 0x44], ecx
mov ecx, dword [esp + 0xc]
movq qword [esi + 0x3c], xmm0
movsd qword [esi + 0x1c], xmm1
movsd xmm1, qword [esp + 0x154]
movsd qword [esi + 0x24], xmm2
movq xmm2, qword [esp + 0x14c]
movsd qword [esi + 0x14], xmm1
movq xmm1, qword [esp + 0x144]
movq qword [esi + 0xc], xmm2
mov dword [esi], eax
movq qword [esi + 4], xmm1
lock dec dword [ecx]
jne 0x49a52c
call fcn.00483f30
cmp dword [esp], 0
je 0x49a5db
mov eax, dword [0x607460]
push edi
push 0
jmp 0x49a5d4
cmp dword [esp + 0x30], 0
je 0x49a55c
mov eax, dword [0x607460]
push dword [esp + 0xc]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov esi, dword [ebp + 8]
mov ecx, dword [esp]
jmp 0x499bfe
call sub.KERNEL32.dll_GetProcessHeap
mov esi, dword [ebp + 8]
test eax, eax
je 0x49a677
mov ecx, dword [0x607460]
mov dword [ecx], eax
push 0x14
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x49a677
mov ecx, dword [esp + 0x150]
cmp dword [esp], 0
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 8]
movq xmm0, qword [esp + 0x140]
movq xmm1, qword [esp + 0x148]
movq qword [eax + 8], xmm1
movq qword [eax], xmm0
mov dword [esi + 4], eax
mov dword [esi + 8], ecx
mov dword [esi], 2
je 0x49a5db
push edi
push 0
mov eax, dword [0x607460]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov ecx, esi
call fcn.00480590
cmp dword [esp + 0x20], 0
je 0x49a600
mov eax, dword [0x607460]
push esi
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
inc esi
mov dword [esp], ecx
nop dword [eax]
cmp esi, 1
je 0x49a622
lea edi, [ecx + 0x74]
dec esi
call fcn.0047fbc0
mov ecx, edi
jmp 0x49a610
cmp dword [esp + 0x14], 0
je 0x49a63a
mov eax, dword [0x607460]
push dword [esp]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov esi, dword [ebp + 8]
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push ebx
push 4
call fcn.0041a8c0
add esp, 8
jmp 0x49a683
ud2
push 8
push 4
call fcn.0041a8c0
add esp, 8
jmp 0x49a683
push 0x310
push 8
call fcn.0041a8c0
add esp, 8
jmp 0x49a683
push 0x14
push 4
call fcn.0041a8c0
add esp, 8
ud2