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

Disassembly:
sub esp, 0x78
mov eax, dword [0x5a83f8]
xor eax, esp
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x8c]
push ebx
mov ebx, dword [esp + 0x80]
push ebp
mov ebp, dword [esp + 0x90]
push esi
mov esi, dword [esp + 0x8c]
add eax, esi
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0x5448]
lea edx, [ecx + ebp]
push edi
mov edi, dword [ebx + 0x5444]
add eax, edi
mov dword [esp + 0x14], eax
lea eax, [ebx + 0x804]
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0x5414]
push ecx
mov dword [esp + 0x34], eax
mov eax, dword [ebx + 0x5418]
push ebp
push dword [ebx + 0x5440]
mov dword [esp + 0x44], eax
mov eax, dword [ebx + 0x541c]
mov dword [esp + 0x40], eax
lea eax, [ebx + 0x804]
push eax
mov dword [esp + 0x38], edx
lea eax, [esp + 0x34]
lea edx, [ebx + 0xc08]
mov dword [esp + 0x3c], ebx
push edx
push ebx
push eax
mov dword [esp + 0x5c], esi
mov dword [esp + 0x58], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x38], edx
call fcn.00542030
add esp, 0x1c
cmp eax, 0xffffff88
ja 0x542b56
lea ecx, [eax + ebp]
mov dword [ebx + 0x5440], 0
mov ebp, dword [esp + 0x24]
test ebp, ebp
je 0x542b12
mov eax, dword [esp + 0x28]
xorps xmm0, xmm0
sub eax, ecx
mov dword [esp + 0x4c], 0
push eax
push ecx
lea eax, [esp + 0x58]
movq qword [esp + 0x4c], xmm0
push eax
mov dword [esp + 0x58], 1
mov dword [esp + 0x84], 1
mov dword [esp + 0x88], 1
mov dword [esp + 0x8c], 1
call fcn.0053fd10
add esp, 0xc
cmp eax, 0xffffff88
ja 0x542afa
mov edx, dword [esp + 0x54]
mov ecx, edx
movzx edi, word [ebx]
and ecx, 0x1f
mov eax, dword [esp + 0x50]
or ebx, 0xffffffff
shl eax, cl
add edx, edi
mov ecx, ebx
shr eax, 1
sub ecx, edi
mov dword [esp + 0x54], edx
and ecx, 0x1f
shr eax, cl
mov dword [esp + 0x60], eax
lea eax, [esp + 0x50]
push eax
call fcn.0053c0e0
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x58]
add eax, 4
mov dword [esp + 0x68], eax
mov ecx, edx
mov eax, dword [esp + 0x1c]
and ecx, 0x1f
movzx edi, word [eax]
mov eax, dword [esp + 0x54]
add edx, edi
shl eax, cl
mov ecx, ebx
sub ecx, edi
shr eax, 1
and ecx, 0x1f
mov dword [esp + 0x58], edx
shr eax, cl
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x54]
push eax
call fcn.0053c0e0
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x5c]
add eax, 4
mov dword [esp + 0x74], eax
mov ecx, edx
mov eax, dword [esp + 0x24]
and ecx, 0x1f
movzx edi, word [eax]
mov eax, dword [esp + 0x58]
sub ebx, edi
shl eax, cl
and ebx, 0x1f
shr eax, 1
mov ecx, ebx
shr eax, cl
add edx, edi
mov dword [esp + 0x78], eax
lea eax, [esp + 0x58]
push eax
mov dword [esp + 0x60], edx
call fcn.0053c0e0
mov eax, dword [esp + 0x28]
add eax, 4
mov dword [esp + 0x80], eax
lea eax, [esp + 0x5c]
push eax
call fcn.0053c0e0
mov ebx, dword [esp + 0x24]
add esp, 0x10
cmp eax, 2
jg 0x542af2
mov edi, dword [esp + 0x30]
nop word [eax + eax]
test ebp, ebp
je 0x542aec
lea eax, [esp + 0x50]
dec ebp
push eax
lea eax, [esp + 0x48]
push eax
call fcn.00542160
movq xmm0, qword [esp + 0x4c]
lea eax, [esp + 0x18]
add esp, 8
push dword [esp + 0x34]
push dword [esp + 0x3c]
push edi
push ebx
push eax
mov eax, dword [esp + 0x60]
sub esp, 0xc
mov ecx, esp
push dword [esp + 0x40]
movq qword [ecx], xmm0
push esi
mov dword [ecx + 8], eax
call fcn.00542c80
add esp, 0x28
cmp eax, 0xffffff88
ja 0x542b56
add esi, eax
lea eax, [esp + 0x50]
push eax
call fcn.0053c0e0
add esp, 4
cmp eax, 2
jle 0x542a80
mov edi, dword [esp + 0x10]
jmp 0x542af6
mov edi, dword [esp + 0x10]
jmp 0x542b16
mov edi, dword [esp + 0x3c]
test ebp, ebp
je 0x542b16
mov eax, 0xffffffec
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.0046ec22
add esp, 0x78
ret
mov ebx, dword [esp + 0x14]
mov eax, ebx
sub eax, edi
cmp edi, ebx
ja 0x542afa
lea ebx, [eax + esi]
cmp ebx, dword [esp + 0x20]
jbe 0x542b3f
mov eax, 0xffffffba
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.0046ec22
add esp, 0x78
ret
test eax, eax
je 0x542b50
push eax
push edi
push esi
call fcn.004effe0
add esp, 0xc
mov esi, ebx
sub esi, dword [esp + 0x40]
mov eax, esi
mov ecx, dword [esp + 0x84]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0046ec22
add esp, 0x78
ret