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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xb0
mov eax, dword [0x53c014]
xor eax, ebp
mov dword [esp + 0xa8], eax
xor edi, edi
dec edi
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa0], edi
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x90], xmm0
movdqa xmmword [esp + 0x80], xmm0
movdqa xmmword [esp + 0x70], xmm0
movdqa xmmword [esp + 0x60], xmm0
movdqa xmmword [esp + 0x50], xmm0
mov dword [esp + 0x44], edi
mov dword [esp + 0x40], edi
test ecx, ecx
je 0x4a9b5e
mov esi, ecx
mov dword [esp + 0x2c], edx
mov eax, dword [ecx + 0x48]
add eax, dword [ecx + 0x58]
mov ecx, dword [ecx + 0x4c]
adc ecx, dword [esi + 0x5c]
push 0
push ecx
push eax
push dword [esi + 0x30]
push esi
call fcn.004c3e5a
add esp, 0x14
mov ecx, edi
test eax, eax
jne 0x4a991c
mov edx, dword [esi + 0x30]
lea eax, [esp + 0x44]
mov ecx, esi
push eax
call fcn.004aaad2
add esp, 4
mov ecx, edi
test eax, eax
jne 0x4a991c
xor eax, eax
cmp dword [esp + 0x44], 0x2014b50
mov ecx, 0xffffff99
cmove ecx, eax
mov dword [esp + 8], ecx
mov edx, dword [esi + 0x30]
lea eax, [esp + 0x50]
mov ecx, esi
push eax
call fcn.004aad44
add esp, 4
mov ebx, eax
lea eax, [esp + 0x54]
mov edx, dword [esi + 0x30]
mov ecx, esi
push eax
call fcn.004aad44
add esp, 4
mov edi, eax
or edi, ebx
lea eax, [esp + 0x58]
mov edx, dword [esi + 0x30]
mov ecx, esi
push eax
call fcn.004aad44
add esp, 4
mov ebx, eax
lea eax, [esp + 0x5c]
mov edx, dword [esi + 0x30]
mov ecx, esi
push eax
call fcn.004aad44
add esp, 4
or eax, ebx
or eax, edi
mov dword [esp + 0xc], eax
lea edi, [esp + 0x60]
mov edx, dword [esi + 0x30]
mov ecx, esi
push edi
call fcn.004aaad2
add esp, 4
mov dword [esp + 0x10], eax
mov eax, dword [edi]
mov ecx, eax
shr ecx, 0x10
and ecx, 0x1f
mov dword [edi + 0x3c], ecx
mov ecx, eax
shr ecx, 0x15
and ecx, 0xf
dec ecx
mov dword [edi + 0x40], ecx
mov ecx, eax
shr ecx, 0x19
add ecx, 0x7bc
mov dword [edi + 0x44], ecx
mov ecx, eax
shr ecx, 0xb
and ecx, 0x1f
mov dword [edi + 0x38], ecx
mov ecx, eax
shr ecx, 5
and ecx, 0x3f
mov dword [edi + 0x34], ecx
add eax, eax
and eax, 0x3e
mov dword [edi + 0x30], eax
lea ebx, [esp + 0x64]
mov edx, dword [esi + 0x30]
mov ecx, esi
push ebx
call fcn.004aaad2
add esp, 4
mov edi, eax
or edi, dword [esp + 0x10]
mov edx, dword [esi + 0x30]
lea eax, [esp + 0x40]
mov ecx, esi
push eax
call fcn.004aaad2
add esp, 4
or eax, edi
or eax, dword [esp + 0xc]
mov dword [esp + 0xc], eax
lea edi, [esp + 0x40]
mov eax, dword [edi]
mov dword [ebx + 4], eax
xor eax, eax
mov dword [ebx + 8], eax
mov edx, dword [esi + 0x30]
mov ecx, esi
push edi
call fcn.004aaad2
add esp, 4
mov dword [esp + 0x10], eax
mov eax, dword [edi]
xor ecx, ecx
mov dword [ebx + 0x10], ecx
mov dword [ebx + 0xc], eax
lea eax, [esp + 0x78]
mov edx, dword [esi + 0x30]
mov ecx, esi
push eax
call fcn.004aad44
add esp, 4
mov edi, eax
or edi, dword [esp + 0x10]
lea eax, [esp + 0x7c]
mov edx, dword [esi + 0x30]
mov ecx, esi
push eax
call fcn.004aad44
add esp, 4
or eax, edi
mov edi, eax
lea eax, [esp + 0x80]
mov edx, dword [esi + 0x30]
mov ecx, esi
push eax
call fcn.004aad44
add esp, 4
mov ebx, eax
or ebx, edi
or ebx, dword [esp + 0xc]
lea eax, [esp + 0x84]
mov edx, dword [esi + 0x30]
mov ecx, esi
push eax
call fcn.004aad44
add esp, 4
mov dword [esp + 0xc], eax
lea eax, [esp + 0x88]
mov edx, dword [esi + 0x30]
mov ecx, esi
push eax
call fcn.004aad44
add esp, 4
mov edi, eax
or edi, dword [esp + 0xc]
or edi, ebx
lea ebx, [esp + 0x8c]
mov edx, dword [esi + 0x30]
mov ecx, esi
push ebx
call fcn.004aaad2
add esp, 4
mov dword [esp + 0xc], eax
mov edx, dword [esi + 0x30]
mov dword [esp + 0x14], esi
mov ecx, esi
lea esi, [esp + 0x40]
push esi
call fcn.004aaad2
xor ecx, ecx
dec ecx
add esp, 4
or eax, dword [esp + 0xc]
or eax, edi
cmove ecx, dword [esp + 8]
xor eax, eax
mov dword [esp + 0x4c], eax
mov eax, dword [esi]
mov dword [esp + 0x48], eax
mov edi, dword [ebx - 0x14]
cmp dword [ebp + 0xc], 0
je 0x4a9b68
test ecx, ecx
jne 0x4a9b70
mov ecx, dword [ebp + 0x10]
mov ebx, ecx
cmp edi, ecx
jae 0x4a9b1a
mov eax, dword [ebp + 0xc]
mov byte [eax + edi], 0
mov ebx, edi
xor eax, eax
test ecx, ecx
je 0x4a9b78
test edi, edi
mov esi, dword [esp + 0x14]
je 0x4a9b7c
mov eax, dword [esi + 0x30]
mov dword [esp + 8], eax
mov ecx, dword [esi + 4]
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0x1c]
call dword [section..00cfg]
push ebx
push dword [ebp + 0xc]
push dword [esp + 0x10]
push esi
mov esi, dword [esp + 0x24]
call ecx
add esp, 0x10
xor ecx, ecx
cmp eax, ebx
setne cl
neg ecx
mov eax, ecx
jmp 0x4a9b7c
mov ebx, 0xffffff9a
jmp 0x4aa009
mov esi, dword [esp + 0x14]
mov ebx, ecx
jmp 0x4a9b80
mov ebx, ecx
mov esi, dword [esp + 0x14]
jmp 0x4a9b80
mov esi, dword [esp + 0x14]
sub edi, ebx
mov ebx, eax
mov ecx, dword [esp + 0x7c]
cmp dword [ebp + 0x14], 0
je 0x4a9bd1
test ebx, ebx
jne 0x4a9bd1
mov esi, dword [ebp + 0x18]
cmp ecx, esi
mov ebx, esi
cmovb ebx, ecx
test edi, edi
mov dword [esp + 0x10], ecx
je 0x4a9bd5
mov eax, edi
sar eax, 0x1f
push 1
push eax
push edi
mov eax, dword [esp + 0x20]
push dword [eax + 0x30]
push eax
call fcn.004c3e5a
add esp, 0x14
xor ecx, ecx
test eax, eax
setne cl
cmove edi, eax
neg ecx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x10]
mov eax, edi
jmp 0x4a9bdf
add edi, ecx
jmp 0x4a9c2f
mov dword [esp + 8], 0
xor eax, eax
test esi, esi
je 0x4a9c21
test ecx, ecx
je 0x4a9c21
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0x30]
mov ecx, dword [eax + 4]
mov edi, dword [eax + 0x1c]
call dword [section..00cfg]
push ebx
push dword [ebp + 0x14]
push esi
push edi
call ecx
add esp, 0x10
xor ecx, ecx
dec ecx
cmp eax, ebx
mov eax, dword [esp + 8]
cmovne eax, ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc]
mov edi, ecx
sub edi, ebx
add edi, eax
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 8]
test ebx, ebx
jne 0x4a9f44
test ecx, ecx
je 0x4a9f44
xor ebx, ebx
mov dword [esp + 8], 0
mov dword [esp + 0x18], 0
sub edi, ecx
je 0x4a9cc8
mov eax, edi
sar eax, 0x1f
push 1
push eax
push edi
push dword [esi + 0x30]
push esi
mov dword [esp + 0x24], ecx
call fcn.004c3e5a
add esp, 0x14
xor ecx, ecx
test eax, eax
setne cl
cmove edi, eax
neg ecx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], edi
jmp 0x4a9cc8
push 1
push 0
push ecx
push dword [ebx + 0x30]
push ebx
call fcn.004c3e5a
add esp, 0x14
neg eax
mov eax, 0
sbb eax, eax
or edi, eax
mov dword [esp + 8], edi
mov esi, ebx
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 0x20]
jmp 0x4a9f2f
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
jmp 0x4a9f2f
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
xor ebx, ebx
dec ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], ebx
mov edx, dword [esi + 0x30]
mov ecx, esi
lea eax, [esp + 0x3c]
push eax
call fcn.004aad44
add esp, 4
mov edi, eax
mov edx, dword [esi + 0x30]
mov ecx, esi
lea eax, [esp + 0x38]
push eax
call fcn.004aad44
add esp, 4
or eax, edi
mov eax, dword [esp + 8]
cmovne eax, ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
cmp eax, 0x7075
je 0x4a9de1
cmp eax, 1
jne 0x4a9eda
mov eax, dword [esp + 0x70]
not eax
or eax, dword [esp + 0x74]
mov ebx, dword [esp + 0xc]
jne 0x4a9d55
mov edx, dword [esi + 0x30]
mov ecx, esi
lea eax, [esp + 0x70]
push eax
call fcn.004aab97
add esp, 4
neg eax
mov eax, 0
sbb eax, eax
or dword [esp + 8], eax
mov eax, dword [esp + 0x68]
not eax
or eax, dword [esp + 0x6c]
jne 0x4a9d80
mov edx, dword [esi + 0x30]
mov ecx, esi
lea eax, [esp + 0x68]
push eax
call fcn.004aab97
add esp, 4
neg eax
mov eax, 0
sbb eax, eax
or dword [esp + 8], eax
mov eax, dword [esp + 0x48]
not eax
or eax, dword [esp + 0x4c]
jne 0x4a9dab
mov edx, dword [esi + 0x30]
mov ecx, esi
lea eax, [esp + 0x48]
push eax
call fcn.004aab97
add esp, 4
neg eax
mov eax, 0
sbb eax, eax
or dword [esp + 8], eax
cmp dword [esp + 0x84], 0xffffffff
jne 0x4a9dd4
mov edx, dword [esi + 0x30]
mov ecx, esi
lea eax, [esp + 0x34]
push eax
call fcn.004aaad2
add esp, 4
neg eax
mov eax, 0
sbb eax, eax
or dword [esp + 8], eax
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x7c]
jmp 0x4a9f2f
mov dword [esp + 0x34], 0
mov edx, dword [esi + 0x30]
mov ecx, esi
lea eax, [esp + 0x34]
push eax
call fcn.004aadb6
add esp, 4
neg eax
mov ebx, esi
mov esi, 0
sbb esi, esi
or esi, dword [esp + 8]
cmp dword [esp + 0x34], 1
jne 0x4a9efe
mov dword [esp + 0x30], 0xffffffff
mov edx, dword [ebx + 0x30]
mov ecx, ebx
lea eax, [esp + 0x30]
push eax
call fcn.004aaad2
add esp, 4
neg eax
mov edi, 0
sbb edi, edi
or edi, esi
push dword [esp + 0x78]
push dword [ebp + 0xc]
push 0
call fcn.00450d60
add esp, 0xc
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x20], ecx
add ecx, 0xfffffffb
cmp eax, dword [esp + 0x30]
jne 0x4a9c88
mov dword [esp + 8], edi
mov edx, dword [ebp + 0x10]
mov eax, edx
cmp ecx, edx
jae 0x4a9e76
mov eax, dword [ebp + 0xc]
mov byte [eax + ecx], 0
mov eax, ecx
test edx, edx
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 0x20]
je 0x4a9cbb
test ecx, ecx
je 0x4a9cbb
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 0x30]
mov dword [esp + 0x28], ecx
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x1c]
mov dword [esp + 0x24], edx
mov dword [esp + 0x1c], eax
call dword [section..00cfg]
push dword [esp + 0x1c]
push dword [ebp + 0xc]
push dword [esp + 0x30]
push dword [esp + 0x30]
call ecx
add esp, 0x10
cmp eax, dword [esp + 0x1c]
mov eax, dword [esp + 8]
mov ecx, 0xffffffff
cmovne eax, ecx
mov dword [esp + 8], eax
jmp 0x4a9cbf
mov edi, dword [esp + 0x38]
push 1
push 0
push edi
push dword [esi + 0x30]
push esi
call fcn.004c3e5a
add esp, 0x14
neg eax
mov eax, 0
sbb eax, eax
or dword [esp + 8], eax
jmp 0x4a9f27
mov edi, dword [esp + 0x38]
lea eax, [edi - 1]
push 1
push 0
push eax
push dword [ebx + 0x30]
push ebx
call fcn.004c3e5a
add esp, 0x14
neg eax
mov eax, 0
sbb eax, eax
or eax, esi
mov dword [esp + 8], eax
mov esi, ebx
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
add ebx, edi
add ebx, 4
cmp ebx, ecx
jb 0x4a9cc8
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 8]
cmp dword [ebp + 0x1c], 0
je 0x4a9fdb
test ebx, ebx
jne 0x4a9fdb
mov ebx, dword [ebp + 0x20]
mov esi, dword [esp + 0x80]
mov eax, ebx
cmp esi, ebx
jae 0x4a9f6f
mov eax, dword [ebp + 0x1c]
mov byte [eax + esi], 0
mov eax, esi
test edi, edi
mov dword [esp + 8], eax
je 0x4a9f9a
mov eax, edi
sar eax, 0x1f
push 1
push eax
push edi
mov eax, dword [esp + 0x20]
push dword [eax + 0x30]
push eax
call fcn.004c3e5a
add esp, 0x14
xor ecx, ecx
neg eax
sbb ecx, ecx
mov eax, ecx
jmp 0x4a9f9c
xor eax, eax
test ebx, ebx
je 0x4a9fd9
test esi, esi
mov ebx, eax
je 0x4a9fdb
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x30]
mov dword [esp + 0xc], ecx
mov ecx, dword [eax + 4]
mov edi, dword [eax + 0x1c]
call dword [section..00cfg]
mov esi, dword [esp + 8]
push esi
push dword [ebp + 0x1c]
push dword [esp + 0x14]
push edi
call ecx
add esp, 0x10
xor ecx, ecx
dec ecx
cmp eax, esi
cmovne ebx, ecx
jmp 0x4a9fdb
mov ebx, eax
mov eax, dword [ebp + 8]
mov edi, dword [esp + 0x2c]
test edi, edi
je 0x4a9ff5
test ebx, ebx
jne 0x4a9ff5
lea esi, [esp + 0x50]
mov ecx, 0x16
rep movsd dword es:[edi], dword [esi]
test eax, eax
je 0x4aa009
test ebx, ebx
jne 0x4aa009
movq xmm0, qword [esp + 0x48]
movq qword [eax], xmm0
xor ebx, ebx
mov ecx, dword [esp + 0xa8]
xor ecx, ebp
call fcn.004e96e3
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret