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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xc0
mov eax, dword [edx]
mov ebx, edx
mov edx, dword [edx + 4]
mov dword [esp + 0x1c], ecx
lea esi, [esp + 0x78]
mov dword [esp + 0x18], 0
mov edi, dword [ebx + 8]
mov dword [esp + 0x20], ebx
mov ebx, dword [ebx + 0xc]
mov ecx, eax
mov dword [esi], eax
mov dword [esi + 4], edx
xor eax, 0x6e657261
xor ecx, 0x70736575
mov dword [esi + 8], edi
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], ecx
mov ecx, edx
xor edx, 0x6c796765
xor ecx, 0x736f6d65
mov dword [esi + 0x14], ecx
mov dword [esi + 0x18], eax
mov eax, edi
mov dword [esi + 0x1c], edx
xor edi, 0x79746573
mov ecx, esi
xor eax, 0x6e646f6d
mov dword [esi + 0x20], eax
mov eax, ebx
xor ebx, 0x74656462
xor eax, 0x646f7261
mov dword [esi + 0x24], eax
xor eax, eax
mov dword [esi + 0x28], edi
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], eax
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], eax
mov eax, dword [ebp + 8]
mov edx, dword [eax]
mov dword [esp + 0x2c], edx
push dword [eax + 8]
call fcn.00449420
add esp, 4
lea edx, [esp + 0x54]
mov ecx, esi
mov byte [edx], 0xff
push 1
call fcn.00449420
add esp, 4
mov eax, dword [esi + 0x38]
mov edx, dword [esi + 0x2c]
mov ecx, dword [esi + 0x30]
mov ebx, dword [esi + 0x24]
pcmpeqd xmm3, xmm3
shl eax, 0x18
mov dword [esp + 0x40], ecx
or eax, dword [esi + 0x34]
xor edx, eax
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x20]
mov dword [esp + 0x30], edx
mov edx, dword [esi + 0x28]
mov edi, eax
xor edx, ecx
mov ecx, dword [esi + 0x10]
add ecx, eax
mov dword [esp + 4], ecx
mov ecx, dword [esi + 0x14]
adc ecx, ebx
shld edi, ebx, 0xd
shld ebx, eax, 0xd
mov eax, dword [esi + 0x18]
xor ebx, ecx
xor edi, dword [esp + 4]
mov dword [esp + 0x10], ecx
mov ecx, dword [esi + 0x1c]
mov esi, edx
add eax, edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x30]
adc ecx, eax
shld esi, eax, 0x10
shrd edx, eax, 0x10
xor esi, dword [esp + 0xc]
xor edx, ecx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 4]
add dword [esp + 0x10], esi
mov eax, esi
adc ecx, edx
shrd esi, edx, 0xb
shld eax, edx, 0x15
mov edx, edi
mov dword [esp + 4], ecx
xor esi, ecx
mov ecx, dword [esp + 0x10]
xor eax, ecx
add dword [esp + 0xc], edi
adc dword [esp + 8], ebx
shld edx, ebx, 0x11
shrd edi, ebx, 0xf
mov ebx, dword [esp + 4]
xor ecx, dword [esp + 0x40]
xor edx, dword [esp + 0xc]
xor ebx, dword [esp + 0x14]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 8]
xor edi, ebx
xor ebx, 0xff
add ecx, edx
mov dword [esp + 8], ebx
mov ebx, dword [esp + 4]
mov dword [esp + 0x10], ecx
mov ecx, edx
adc ebx, edi
shld ecx, edi, 0xd
shrd edx, edi, 0x13
mov edi, eax
mov dword [esp + 4], ebx
xor edx, ebx
xor ecx, dword [esp + 0x10]
add dword [esp + 8], eax
mov ebx, dword [esp + 0xc]
adc ebx, esi
shld edi, esi, 0x10
shrd eax, esi, 0x10
xor edi, dword [esp + 8]
xor eax, ebx
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x10]
add dword [esp + 4], edi
mov esi, edi
adc ebx, eax
shld esi, eax, 0x15
shrd edi, eax, 0xb
mov eax, ecx
mov dword [esp + 0x10], ebx
xor edi, ebx
xor esi, dword [esp + 4]
add dword [esp + 8], ecx
mov ebx, dword [esp + 0xc]
adc ebx, edx
shld eax, edx, 0x11
shrd ecx, edx, 0xf
mov edx, dword [esp + 4]
xor eax, dword [esp + 8]
xor ecx, ebx
mov dword [esp + 0xc], ebx
add edx, eax
mov ebx, eax
adc dword [esp + 0x10], ecx
shld ebx, ecx, 0xd
shrd eax, ecx, 0x13
mov dword [esp + 4], edx
mov ecx, esi
xor ebx, edx
xor eax, dword [esp + 0x10]
add dword [esp + 0xc], esi
mov edx, dword [esp + 8]
adc edx, edi
shrd esi, edi, 0x10
shld ecx, edi, 0x10
mov dword [esp + 8], edx
xor esi, edx
mov edx, dword [esp + 0xc]
xor ecx, edx
add dword [esp + 0x10], ecx
mov edi, ecx
adc dword [esp + 4], esi
shld edi, esi, 0x15
shrd ecx, esi, 0xb
mov esi, dword [esp + 8]
xor ecx, dword [esp + 4]
xor edi, dword [esp + 0x10]
add edx, ebx
mov dword [esp + 0xc], edx
mov edx, ebx
adc esi, eax
shld edx, eax, 0x11
shrd ebx, eax, 0xf
xor edx, dword [esp + 0xc]
mov dword [esp + 8], esi
xor ebx, esi
mov esi, dword [esp + 0x10]
add esi, edx
mov eax, edx
adc dword [esp + 4], ebx
shld eax, ebx, 0xd
shrd edx, ebx, 0x13
mov ebx, dword [esp + 0xc]
xor eax, esi
xor edx, dword [esp + 4]
add dword [esp + 8], edi
mov esi, edi
adc ebx, ecx
shrd edi, ecx, 0x10
shld esi, ecx, 0x10
mov ecx, dword [esp + 8]
xor edi, ebx
xor esi, ecx
shld esi, edi, 0x15
add ecx, eax
adc ebx, edx
shrd edx, eax, 0xf
xor edx, esi
xor edx, ebx
xor edx, ecx
mov ecx, dword [esp + 0x20]
mov eax, edx
mov dword [esp + 0xc], edx
shr eax, 0x19
movd xmm0, eax
mov dword [esp + 0x10], eax
mov edi, dword [ecx + 0x10]
mov esi, dword [ecx + 0x14]
punpcklbw xmm0, xmm0
lea eax, [ecx + 0x10]
pshuflw xmm0, xmm0, 0
mov dword [esp + 0x14], eax
pshufd xmm2, xmm0, 0
movdqa xmm0, xmm2
mov dword [esp + 8], edi
and edi, edx
mov dword [esp + 4], esi
movdqu xmm1, xmmword [esi + edi]
mov edx, edi
pcmpeqb xmm0, xmm1
movdqa xmm4, xmm1
pmovmskb ebx, xmm0
test bx, bx
je 0x449b5e
mov esi, dword [esp + 8]
mov eax, ebx
lea ebx, [eax - 1]
and ebx, eax
bsf ax, ax
movzx ecx, ax
mov eax, dword [ebp + 8]
add ecx, edx
and ecx, esi
mov esi, dword [esp + 4]
neg ecx
mov eax, dword [eax + 8]
lea ecx, [ecx + ecx*2]
cmp eax, dword [esi + ecx*8 - 0x10]
jne 0x449ad4
push eax
push dword [esi + ecx*8 - 0x18]
push dword [esp + 0x34]
movdqa xmmword [esp + 0x4c], xmm1
movdqa xmmword [esp + 0x3c], xmm2
mov dword [esp + 0x34], edx
movdqa xmmword [esp + 0x6c], xmm4
mov dword [esp + 0x30], ecx
call sub.VCRUNTIME140.dll_memcmp
mov ecx, dword [esp + 0x30]
movdqa xmm4, xmmword [esp + 0x6c]
mov edx, dword [esp + 0x34]
movdqa xmm2, xmmword [esp + 0x3c]
movdqa xmm1, xmmword [esp + 0x4c]
pcmpeqd xmm3, xmm3
add esp, 0xc
test eax, eax
je 0x449be3
jmp 0x449ad4
mov esi, dword [esp + 8]
pcmpeqb xmm4, xmm3
pmovmskb eax, xmm4
test ax, ax
jne 0x449b9f
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 4]
movdqa xmm0, xmm2
lea edx, [edx + eax + 0x10]
add eax, 0x10
and edx, esi
mov dword [esp + 0x18], eax
movdqu xmm4, xmmword [ecx + edx]
pcmpeqb xmm0, xmm4
pmovmskb ebx, xmm0
test bx, bx
je 0x449b62
jmp 0x449ae1
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 8]
movsd xmm0, qword [ecx]
pmovmskb ecx, xmm1
test cx, cx
mov dword [esp + 0x80], eax
mov eax, dword [ebp + 0xc]
movsd qword [esp + 0x78], xmm0
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [esp + 0x84], xmm0
mov dword [esp + 0x8c], eax
je 0x449c3c
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0xc]
jmp 0x449c5e
mov eax, dword [esi + ecx*8 - 4]
mov edi, dword [esp + 0x1c]
mov edx, ecx
mov dword [edi + 8], eax
mov eax, dword [ebp + 0xc]
movsd xmm0, qword [esi + ecx*8 - 0xc]
mov ecx, eax
mov eax, dword [eax + 8]
movsd qword [edi], xmm0
mov dword [esi + edx*8 - 4], eax
mov eax, dword [ebp + 8]
movq xmm0, qword [ecx]
movq qword [esi + edx*8 - 0xc], xmm0
mov eax, dword [eax + 4]
test eax, eax
je 0x449cd6
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx]
test ecx, ecx
je 0x449cd6
push 1
push eax
push ecx
call fcn.00401290
add esp, 0xc
jmp 0x449cd6
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0xc]
mov eax, 0x10
add edi, eax
add eax, 0x10
and edi, esi
movdqu xmm0, xmmword [edx + edi]
pmovmskb ecx, xmm0
test cx, cx
je 0x449c49
bsf ax, cx
movzx eax, ax
add eax, edi
and eax, esi
mov cl, byte [edx + eax]
test cl, cl
jns 0x449ce0
mov edi, dword [esp + 0x20]
test cl, 1
je 0x449c7f
cmp dword [edi + 0x18], 0
je 0x449cf7
and cl, 1
mov ebx, dword [esp + 0x10]
neg cl
movsx ecx, cl
add dword [edi + 0x18], ecx
lea ecx, [eax - 0x10]
and ecx, esi
mov byte [edx + eax], bl
neg eax
mov byte [ecx + edx + 0x10], bl
lea eax, [eax + eax*2]
inc dword [edi + 0x1c]
mov edi, dword [esp + 0x1c]
movsd xmm0, qword [esp + 0x88]
movsd qword [edx + eax*8 - 8], xmm0
movsd xmm0, qword [esp + 0x78]
movsd xmm1, qword [esp + 0x80]
movsd qword [edx + eax*8 - 0x10], xmm1
movsd qword [edx + eax*8 - 0x18], xmm0
mov dword [edi], 0
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
movdqa xmm0, xmmword [edx]
pmovmskb eax, xmm0
bsf ax, ax
movzx eax, ax
mov cl, byte [edx + eax]
jmp 0x449c70
mov edx, dword [esp + 0x14]
mov byte [esp + 4], cl
lea ecx, [esp + 0x54]
push edi
push 1
call fcn.0045b640
add esp, 8
mov esi, dword [edi + 0x10]
mov edx, dword [edi + 0x14]
and ebx, esi
movdqu xmm0, xmmword [edx + ebx]
pmovmskb eax, xmm0
test ax, ax
jne 0x449d3e
mov ecx, 0x10
add ebx, ecx
add ecx, 0x10
and ebx, esi
movdqu xmm0, xmmword [edx + ebx]
pmovmskb eax, xmm0
test ax, ax
je 0x449d29
bsf ax, ax
movzx eax, ax
add eax, ebx
and eax, esi
cmp byte [edx + eax], 0
jns 0x449d58
mov cl, byte [esp + 4]
jmp 0x449c7f
movdqa xmm0, xmmword [edx]
pmovmskb eax, xmm0
bsf ax, ax
movzx eax, ax
jmp 0x449d4f