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

Disassembly:
sub esp, 0xbc
mov eax, dword [0x56fcd4]
xor eax, esp
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xc4]
push ebx
push ebp
mov ebp, dword [esp + 0xc8]
mov edx, dword [esp + 0xd8]
mov dword [esp + 0x6c], eax
push esi
movups xmm1, xmmword [ebp]
mov esi, dword [esp + 0xd8]
movq xmm0, qword [ebp + 0x10]
psrldq xmm1, 0xc
movd eax, xmm1
movq qword [esp + 0xa4], xmm0
push edi
cmp dword [esp + 0xa8], eax
mov edi, dword [esp + 0xd8]
sbb ebx, ebx
mov dword [esp + 0x38], edi
neg ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0x48], ebx
mov ebx, dword [edi + 0xc]
mov esi, dword [edi + 8]
mov edi, dword [edi + 4]
sub edi, esi
mov dword [esp + 0x20], ebp
mov dword [esp + 0x8c], edi
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x90], esi
mov dword [esp + 0x4c], edi
cmp dword [esp + 0xa8], eax
jae 0x49c6cb
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x64], ecx
jmp 0x49c6cf
mov dword [esp + 0x64], edi
mov eax, dword [esp + 0x48]
mov edi, dword [ebp + 4]
mov dword [esp + 0x3c], edi
test eax, eax
je 0x49c6e7
mov ecx, dword [ebp + 8]
mov dword [esp + 0x50], ecx
jmp 0x49c6ef
mov dword [esp + 0x50], 0
mov esi, dword [esp + 0x10]
mov ecx, eax
mov eax, dword [esp + 0x64]
add eax, dword [esp + 0x50]
neg ecx
sbb ecx, ecx
and ecx, eax
mov eax, dword [esp + 0x4c]
add eax, dword [esp + 0x50]
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x48]
neg ecx
sbb ecx, ecx
add ebp, 0x24
and ecx, eax
mov dword [esp + 0x88], ebp
mov eax, dword [esp + 0x4c]
add eax, edi
mov dword [esp + 0x68], ecx
mov dword [esp + 0x58], eax
lea edi, [esi + edx]
mov dword [esp + 0x2c], edi
lea eax, [edi - 8]
mov dword [esp + 0x94], eax
cmp edx, ebx
jae 0x49c750
mov eax, edx
jmp 0x49cc36
push dword [esp + 0x38]
lea eax, [esp + 0x9c]
push eax
call fcn.0049c380
add ebx, esi
lea eax, [edi - 8]
add esp, 8
mov dword [esp + 0x28], ebx
cmp ebx, eax
jae 0x49cc32
nop word [eax + eax]
lea ecx, [esp + 0x40]
mov dword [esp + 0x40], 0
push ecx
push ebp
sub eax, ebx
push eax
lea eax, [esp + 0xa4]
push ebx
push eax
call fcn.0049c1d0
mov dword [esp + 0x98], eax
add esp, 0x14
mov eax, dword [esp + 0x40]
xor ebp, ebp
test eax, eax
je 0x49c84c
mov ecx, dword [esp + 0x8c]
mov edi, 1
mov ebx, dword [esp + 0x20]
shl edi, cl
dec edi
add ebx, 0x12c
mov dword [esp + 0x44], edi
mov eax, dword [esp + 0x88]
push 0
push 0
mov esi, dword [eax + ebp*4]
mov eax, dword [esp + 0x5c]
sub esi, eax
add esi, dword [esp + 0x30]
push eax
push esi
call fcn.00497bf0
and edi, eax
mov dword [ebx - 8], esi
mov eax, dword [esp + 0x48]
lea ebx, [ebx + 0x10]
mov dword [ebx - 0x14], edi
inc ebp
mov dword [ebx - 0x10], edx
add esp, 0x10
movups xmm1, xmmword [eax]
movq xmm0, qword [eax + 0x10]
psrldq xmm1, 8
movd ecx, xmm1
movq qword [esp + 0xc0], xmm0
shl edi, cl
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x18]
lea eax, [eax + edi*8]
mov edi, dword [esp + 0x44]
mov dword [ebx - 0xc], eax
mov eax, dword [esp + 0x40]
cmp ebp, eax
jb 0x49c7d4
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
jmp 0x49c850
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x7c], 0
test eax, eax
je 0x49cb80
add ecx, 0x128
mov dword [esp + 0x44], ecx
nop word [eax + eax]
mov ebx, dword [ecx - 4]
xor eax, eax
mov ebp, dword [ecx]
mov edx, dword [ecx + 8]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x6c], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x14], eax
mov eax, ebx
sub eax, dword [esp + 0x3c]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x78], ebp
mov dword [esp + 0x34], edx
mov dword [esp + 0x24], 0
mov dword [esp + 0x60], eax
cmp ebx, esi
jb 0x49cbae
mov ecx, dword [esp + 0x90]
mov eax, 8
shl eax, cl
add eax, edx
mov dword [esp + 0x30], eax
cmp edx, eax
jae 0x49cbae
mov ebp, dword [esp + 0x14]
mov ecx, eax
cmp dword [edx + 4], ebp
jne 0x49caa4
mov eax, dword [edx]
cmp eax, dword [esp + 0x64]
jbe 0x49caa4
cmp dword [esp + 0x48], 0
je 0x49c9af
cmp eax, dword [esp + 0x4c]
mov esi, edi
mov ebx, dword [esp + 0x3c]
mov ecx, edi
cmovb ebx, dword [esp + 0x50]
mov ebp, dword [esp + 0x58]
add ebx, eax
cmp eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x18]
cmovb esi, dword [esp + 0x68]
cmovb ebp, dword [esp + 0x80]
mov eax, esi
sub eax, ebx
add eax, edx
cmp eax, edi
cmovb ecx, eax
push ecx
push ebx
push edx
call fcn.00462330
mov edi, eax
add esp, 0xc
lea ecx, [edi + ebx]
cmp ecx, esi
mov esi, dword [esp + 0x18]
jne 0x49c95a
push dword [esp + 0x2c]
lea eax, [edi + esi]
push dword [esp + 0x5c]
push eax
call fcn.00462330
add esp, 0xc
add edi, eax
cmp edi, dword [esp + 0x54]
jb 0x49ca94
push ebp
push ebx
push dword [esp + 0x18]
push esi
call fcn.0049c010
mov esi, eax
add esp, 0x10
sub ebx, esi
cmp ebx, ebp
jne 0x49c9a8
mov eax, dword [esp + 0x80]
cmp ebp, eax
je 0x49c9a8
mov ebx, dword [esp + 0x18]
push eax
push dword [esp + 0x6c]
mov eax, ebx
push dword [esp + 0x18]
sub eax, esi
push eax
call fcn.0049c010
add esp, 0x10
lea edx, [esi + eax]
jmp 0x49ca5d
mov edx, esi
jmp 0x49ca59
mov ebp, dword [esp + 0x3c]
lea esi, [edi - 3]
add ebp, eax
mov eax, ebx
mov edx, ebp
cmp ebx, esi
jae 0x49c9f4
mov eax, dword [ebx]
xor eax, dword [ebp]
je 0x49c9cf
bsf edi, eax
shr edi, 3
jmp 0x49ca18
lea eax, [ebx + 4]
lea edx, [ebp + 4]
cmp eax, esi
jae 0x49c9f4
nop dword [eax]
mov ecx, dword [eax]
xor ecx, dword [edx]
jne 0x49ca88
add eax, 4
add edx, 4
cmp eax, esi
jb 0x49c9e0
lea ecx, [edi - 1]
cmp eax, ecx
jae 0x49ca09
mov cx, word [edx]
cmp cx, word [eax]
jne 0x49ca09
add eax, 2
add edx, 2
cmp eax, edi
jae 0x49ca14
mov cl, byte [edx]
cmp cl, byte [eax]
jne 0x49ca14
inc eax
mov edi, eax
sub edi, ebx
mov dword [esp + 0x5c], edi
cmp edi, dword [esp + 0x54]
jb 0x49ca98
xor edx, edx
cmp ebx, dword [esp + 0x10]
jbe 0x49ca5d
mov edi, dword [esp + 0x10]
lea ecx, [ebp - 1]
mov esi, ebx
sub ebx, ebp
mov ebp, dword [esp + 0x58]
nop dword [eax]
lea eax, [ecx + 1]
cmp eax, ebp
jbe 0x49ca55
mov al, byte [ebx + ecx]
cmp al, byte [ecx]
jne 0x49ca55
dec esi
dec ecx
inc edx
cmp esi, edi
ja 0x49ca40
mov edi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
lea eax, [edx + edi]
mov ebp, dword [esp + 0x14]
cmp eax, dword [esp + 0x6c]
jbe 0x49caa0
mov dword [esp + 0x70], edx
mov esi, edi
mov edx, dword [esp + 0x34]
mov dword [esp + 0x6c], eax
mov eax, edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x24], eax
jmp 0x49caac
bsf edi, ecx
shr edi, 3
sub edi, ebx
add edi, eax
jmp 0x49ca18
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x2c]
add edx, 8
mov dword [esp + 0x34], edx
cmp edx, ecx
jb 0x49c8d5
test eax, eax
je 0x49cbaa
mov edi, dword [esp + 0x74]
mov edx, ebx
sub edx, dword [eax]
sub edx, dword [esp + 0x3c]
mov eax, dword [edi + 0xc]
cmp eax, dword [edi + 0x10]
je 0x49cc2b
lea ecx, [eax + eax*2]
mov ebp, dword [esp + 0x60]
mov eax, dword [edi]
mov edi, dword [esp + 0x70]
mov dword [eax + ecx*4], edx
lea ecx, [eax + ecx*4]
mov eax, ebx
sub eax, edi
sub eax, dword [esp + 0x10]
mov dword [ecx + 4], eax
lea eax, [edi + esi]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0x78]
inc dword [eax + 0xc]
mov eax, dword [esp + 0x38]
movups xmm1, xmmword [eax]
movq xmm0, qword [eax + 0x10]
mov eax, dword [esp + 0x20]
psrldq xmm1, 8
movd ecx, xmm1
movq qword [esp + 0xc0], xmm0
mov esi, dword [eax + 0x20]
add esi, edi
shl edi, cl
mov dl, byte [esi]
movzx eax, dl
inc dl
add edi, eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x18]
mov dword [eax + edi*8], ebp
mov ebp, dword [esp + 0x14]
mov dword [eax + edi*8 + 4], ebp
mov al, 1
shl al, cl
dec al
and al, dl
mov edx, dword [esp + 0x84]
mov byte [esi], al
mov esi, dword [esp + 0x1c]
add esi, ebx
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x10], esi
lea eax, [edx + ebx]
cmp esi, eax
jbe 0x49cc04
mov ebx, esi
sub ebx, edx
add ebx, dword [esp + 0x84]
mov eax, dword [esp + 0x94]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x28], ebx
cmp ebx, eax
jae 0x49cc32
mov ebp, dword [esp + 0x88]
jmp 0x49c780
mov ebp, dword [esp + 0x78]
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x14]
movups xmm1, xmmword [eax]
mov esi, dword [ebx + 0x20]
movq xmm0, qword [eax + 0x10]
add esi, ebp
psrldq xmm1, 8
movd ecx, xmm1
movq qword [esp + 0xc0], xmm0
mov dl, byte [esi]
movzx eax, dl
inc dl
shl ebp, cl
add ebp, eax
mov eax, dword [ebx + 0x18]
mov ebx, dword [esp + 0x60]
mov dword [eax + ebp*8], ebx
mov ebx, dword [esp + 0x28]
mov dword [eax + ebp*8 + 4], edi
mov al, 1
shl al, cl
dec al
and al, dl
mov byte [esi], al
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x44]
inc eax
add ecx, 0x10
mov dword [esp + 0x7c], eax
mov dword [esp + 0x44], ecx
cmp eax, dword [esp + 0x40]
jae 0x49cb80
mov edi, dword [esp + 0x2c]
jmp 0x49c870
mov eax, 0xffffffba
jmp 0x49cc36
sub edi, esi
mov eax, edi
mov ecx, dword [esp + 0xc8]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004df28f
add esp, 0xbc
ret