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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x490
push 0
call fcn.004c4510
add esp, 4
test eax, eax
je 0x4973e3
movdqu xmm0, xmmword [eax]
mov esi, dword [ebp + 0x14]
movd edx, xmm0
pshufd xmm1, xmm0, 0x55
add edx, 1
movd ecx, xmm1
adc ecx, 0
test esi, esi
mov dword [eax], edx
mov dword [eax + 4], ecx
mov word [esp + 0x80], 0
mov dword [esp + 0x48], 0x527aa0
mov dword [esp + 0x4c], 0
movdqu xmmword [esp + 0x28], xmm0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0x527b10
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 1
mov dword [esp + 0x7c], 0
mov dword [esp + 0x6c], 0
mov byte [esp + 0x50], 6
je 0x49725e
mov ebx, dword [ebp + 0x10]
mov eax, esi
shl eax, 4
add eax, ebx
mov dword [esp + 0x18], eax
jmp 0x497035
mov eax, dword [ecx - 8]
add eax, ebx
push edi
push esi
push eax
mov esi, ecx
call fcn.004f5b80
add esp, 0xc
add ebx, edi
mov dword [esi - 4], ebx
mov ebx, dword [esp + 8]
cmp ebx, dword [esp + 0x18]
je 0x49725e
mov esi, dword [ebx + 4]
mov edi, dword [ebx]
test esi, esi
je 0x497060
js 0x4973e7
push 1
push esi
call fcn.0040dc80
add esp, 8
test eax, eax
jne 0x497065
jmp 0x4973ee
mov eax, 1
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], eax
push esi
push edi
push eax
call fcn.004f5b80
add esp, 0xc
lea eax, [esp + 0xc]
mov dword [esp + 0x14], esi
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x90]
push eax
call fcn.004980a0
add esp, 0xc
cmp dword [esp + 0x88], 0
je 0x497180
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0x90]
mov dword [esp + 8], ebx
mov esi, dword [eax]
mov ecx, dword [eax + 0xc]
mov dword [esp + 4], eax
mov ebx, esi
and ebx, edx
movdqu xmm0, xmmword [ecx + ebx]
pmovmskb edi, xmm0
test edi, edi
jne 0x4970f4
mov eax, 0x10
nop word cs:[eax + eax]
nop
add ebx, eax
add eax, 0x10
and ebx, esi
movdqu xmm0, xmmword [ecx + ebx]
pmovmskb edi, xmm0
test edi, edi
je 0x4970e0
tzcnt edi, edi
add edi, ebx
and edi, esi
movzx ebx, byte [ecx + edi]
test bl, bl
js 0x497114
movdqa xmm0, xmmword [ecx]
pmovmskb eax, xmm0
tzcnt edi, eax
movzx ebx, byte [ecx + edi]
lea eax, [edi - 0x10]
shr edx, 0x19
and bl, 1
movq xmm0, qword [esp + 0x98]
and eax, esi
mov esi, dword [esp + 0xa0]
mov byte [ecx + edi], dl
neg edi
mov byte [eax + ecx + 0x10], dl
movzx eax, bl
mov ebx, dword [esp + 4]
sub dword [ebx + 4], eax
lea eax, [edi + edi*2]
movq qword [ecx + eax*8 - 0x18], xmm0
mov dword [ecx + eax*8 - 0x10], esi
mov dword [ecx + eax*8 - 0xc], 0
mov dword [ecx + eax*8 - 8], 1
mov dword [ecx + eax*8 - 4], 0
inc dword [ebx + 8]
mov ebx, dword [esp + 8]
lea edx, [ecx + eax*8]
jmp 0x4971b0
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x98]
test eax, eax
je 0x4971b0
mov ecx, dword [esp + 0x8c]
test ecx, ecx
je 0x4971b0
push 1
push ecx
push eax
mov esi, edx
call fcn.0040dc90
mov edx, esi
add esp, 0xc
nop dword [eax]
mov eax, dword [edx - 4]
mov dword [esp + 4], edx
test eax, eax
je 0x4971d4
mov ecx, dword [edx - 0xc]
sub ecx, eax
cmp ecx, 1
jbe 0x497243
mov ecx, dword [edx - 8]
mov word [ecx + eax], 0x202c
add eax, 2
mov dword [edx - 4], eax
push dword [ebx + 0xc]
push dword [ebx + 8]
lea eax, [esp + 0x90]
push eax
call fcn.004dc680
add esp, 0xc
cmp dword [esp + 0x88], 0
jne 0x4973e3
mov esi, dword [esp + 0x8c]
test esi, esi
je 0x4973e3
mov ecx, dword [esp + 4]
add ebx, 0x10
mov edi, dword [esp + 0x90]
mov dword [esp + 8], ebx
mov eax, dword [ecx - 0xc]
mov ebx, dword [ecx - 4]
sub eax, ebx
cmp eax, edi
jae 0x497010
lea eax, [ecx - 0xc]
push edi
push ebx
push eax
call fcn.00503700
mov ecx, dword [esp + 0x10]
add esp, 0xc
mov ebx, dword [ecx - 4]
jmp 0x497010
lea ecx, [edx - 0xc]
push 2
push eax
push ecx
call fcn.00503700
mov edx, dword [esp + 0x10]
add esp, 0xc
mov eax, dword [edx - 4]
jmp 0x4971c5
mov esi, dword [ebp + 0x18]
lea ebx, [esp + 0x88]
push 0x400
push 0
push ebx
call fcn.004f7770
add esp, 0xc
push esi
call fcn.00479780
add esp, 4
cmp edx, 0x401
jae 0x4973e3
mov esi, dword [ebp + 0x20]
mov edi, edx
push edx
push eax
push ebx
call fcn.004f5b80
mov ecx, esi
add esp, 0xc
mov esi, edi
add esi, ecx
jb 0x4973e3
cmp esi, 0x400
ja 0x4973e3
mov ebx, dword [ebp + 8]
lea eax, [esp + edi + 0x88]
push ecx
push dword [ebp + 0x1c]
push eax
call fcn.004f5b80
add esp, 0xc
lea eax, [esp + 0xc]
push esi
lea ecx, [esp + 0x8c]
push ecx
push eax
call fcn.004dc680
add esp, 0xc
cmp dword [esp + 0xc], 0
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
je 0x49730a
lea ecx, [esp + 0x28]
mov dword [ebx + 8], edi
mov dword [ebx + 4], esi
mov byte [ebx], 2
call fcn.0042bd90
mov eax, ebx
jmp 0x4973db
test edi, edi
je 0x49732f
setns al
js 0x4973e7
movzx ebx, al
push ebx
push edi
call fcn.0040dc80
add esp, 8
test eax, eax
jne 0x497334
push ebx
push edi
jmp 0x4973f1
mov eax, 1
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], eax
push edi
push esi
push eax
call fcn.004f5b80
add esp, 0xc
lea eax, [esp + 0x1c]
mov dword [esp + 0x24], edi
push eax
lea eax, [esp + 0x10]
push eax
call fcn.004d1960
add esp, 8
mov eax, dword [esp + 0x74]
test eax, eax
je 0x497377
push 1
push eax
push dword [esp + 0x80]
call fcn.0040dc90
add esp, 0xc
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x74]
movq xmm0, qword [esp + 0xc]
mov ebx, dword [ebp + 0xc]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x1c]
movq qword [ecx], xmm0
test eax, eax
je 0x4973a6
push 1
push eax
push dword [esp + 0x28]
call fcn.0040dc90
add esp, 0xc
lea edi, [esp + 0x88]
lea esi, [esp + 0x28]
mov ecx, 0x18
rep movsd dword es:[edi], dword [esi]
cmp byte [ebx + 0x28], 7
je 0x4973c5
mov ecx, ebx
call fcn.0042bd90
lea esi, [esp + 0x88]
mov ecx, 0x18
mov edi, ebx
mov eax, dword [ebp + 8]
rep movsd dword es:[edi], dword [esi]
mov byte [eax], 5
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
ud2
call fcn.004ccfb0
ud2
push 1
push esi
call fcn.005062c0
add esp, 8
ud2