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

Disassembly:
sub esp, 0x80
push ebp
mov ebp, dword [esp + 0x88]
push esi
xor esi, esi
test ebp, ebp
jne 0x546361
pop esi
lea eax, [ebp - 0x66]
pop ebp
add esp, 0x80
ret
mov ecx, dword [ebp + 0x58]
add ecx, dword [ebp + 0x48]
mov eax, dword [ebp + 0x5c]
adc eax, dword [ebp + 0x4c]
push 0
push eax
push ecx
push dword [ebp + 0x30]
push ebp
call fcn.00547ea0
add esp, 0x14
test eax, eax
je 0x546386
or esi, 0xffffffff
jmp 0x5463b0
lea eax, [esp + 0xc]
push eax
push dword [ebp + 0x30]
push ebp
call fcn.00546c20
add esp, 0xc
test eax, eax
je 0x5463a0
or esi, 0xffffffff
jmp 0x5463b0
cmp dword [esp + 0xc], 0x2014b50
mov eax, 0xffffff99
cmovne esi, eax
push ebx
push edi
lea eax, [esp + 0x38]
push eax
push dword [ebp + 0x30]
push ebp
call fcn.00546da0
or ebx, 0xffffffff
test eax, eax
lea eax, [esp + 0x48]
push eax
push dword [ebp + 0x30]
cmovne esi, ebx
push ebp
call fcn.00546da0
test eax, eax
lea eax, [esp + 0x58]
push eax
push dword [ebp + 0x30]
cmovne esi, ebx
push ebp
call fcn.00546da0
test eax, eax
lea eax, [esp + 0x68]
push eax
push dword [ebp + 0x30]
cmovne esi, ebx
push ebp
call fcn.00546da0
test eax, eax
lea eax, [esp + 0x78]
push eax
push dword [ebp + 0x30]
cmovne esi, ebx
push ebp
call fcn.00546c20
test eax, eax
cmovne esi, ebx
mov ebx, dword [esp + 0x84]
mov dword [esp + 0x50], esi
xor edi, edi
mov esi, ebx
mov edx, edi
shrd esi, edx, 0x10
mov eax, esi
shr edx, 0x10
and eax, 0x1f
mov ecx, esi
mov dword [esp + 0xc0], eax
mov eax, edx
shrd ecx, eax, 5
mov eax, edi
and ecx, 0xf
dec ecx
mov dword [esp + 0xc4], ecx
mov ecx, ebx
shrd ecx, eax, 0xb
mov eax, ebx
and ebx, 0x1f
shrd eax, edi, 5
shrd esi, edx, 9
and eax, 0x3f
and ecx, 0x1f
mov dword [esp + 0xb8], eax
add esi, 0x7bc
lea eax, [esp + 0x88]
mov dword [esp + 0xc8], esi
push eax
push dword [ebp + 0x30]
add ebx, ebx
mov dword [esp + 0xc4], ecx
push ebp
mov dword [esp + 0xc0], ebx
call fcn.00546c20
mov ebx, dword [esp + 0x5c]
add esp, 0x48
test eax, eax
mov esi, 0xffffffff
lea eax, [esp + 0x10]
cmovne ebx, esi
push eax
push dword [ebp + 0x30]
push ebp
call fcn.00546c20
test eax, eax
mov dword [esp + 0x60], 0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x5c], eax
cmovne ebx, esi
lea eax, [esp + 0x1c]
push eax
push dword [ebp + 0x30]
push ebp
call fcn.00546c20
test eax, eax
mov dword [esp + 0x74], 0
mov eax, dword [esp + 0x28]
mov dword [esp + 0x70], eax
cmovne ebx, esi
lea eax, [esp + 0x78]
push eax
push dword [ebp + 0x30]
push ebp
call fcn.00546da0
test eax, eax
lea eax, [esp + 0x88]
push eax
push dword [ebp + 0x30]
cmovne ebx, esi
push ebp
call fcn.00546da0
test eax, eax
lea eax, [esp + 0x98]
push eax
push dword [ebp + 0x30]
cmovne ebx, esi
push ebp
call fcn.00546da0
test eax, eax
lea eax, [esp + 0xa8]
push eax
push dword [ebp + 0x30]
cmovne ebx, esi
push ebp
call fcn.00546da0
add esp, 0x48
test eax, eax
lea eax, [esp + 0x70]
cmovne ebx, esi
push eax
push dword [ebp + 0x30]
push ebp
call fcn.00546da0
test eax, eax
lea eax, [esp + 0x80]
push eax
push dword [ebp + 0x30]
cmovne ebx, esi
push ebp
call fcn.00546c20
test eax, eax
lea eax, [esp + 0x28]
push eax
push dword [ebp + 0x30]
cmovne ebx, esi
push ebp
call fcn.00546c20
mov edi, dword [esp + 0x84]
add esp, 0x24
test eax, eax
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], eax
je 0x5465f3
or esi, esi
mov ebx, dword [esp + 0x64]
add edi, ebx
mov dword [esp + 0x18], edi
test esi, esi
jne 0x546981
test ebx, ebx
je 0x54689e
sub edi, ebx
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edi
je 0x5466e7
push 1
mov eax, edi
cdq
push edx
push eax
push dword [ebp + 0x30]
push ebp
call fcn.00547ea0
add esp, 0x14
test eax, eax
jne 0x5466e4
mov dword [esp + 0x18], eax
jmp 0x5466e7
mov esi, ebx
test ebx, ebx
jne 0x5465a5
mov edx, dword [esp + 0xa0]
test edx, edx
je 0x54664e
mov eax, dword [esp + 0xa4]
cmp edi, eax
jae 0x54661a
mov ecx, edi
mov byte [edi + edx], bl
mov dword [esp + 0x18], ecx
jmp 0x546620
mov ecx, eax
mov dword [esp + 0x18], eax
mov esi, ebx
test edi, edi
je 0x54664c
test eax, eax
je 0x54664c
mov eax, dword [ebp + 4]
push ecx
push edx
push dword [ebp + 0x30]
push dword [ebp + 0x1c]
call eax
mov ecx, dword [esp + 0x28]
add esp, 0x10
cmp eax, ecx
je 0x54664c
or esi, 0xffffffff
sub edi, ecx
jmp 0x5465a5
sub edi, ecx
mov ecx, dword [esp + 0xa8]
test ecx, ecx
je 0x5465a5
mov ebx, dword [esp + 0x64]
mov eax, dword [esp + 0xac]
mov dword [esp + 0x10], ebx
cmp ebx, eax
jb 0x546674
mov dword [esp + 0x10], eax
test edi, edi
je 0x5466a4
push 1
mov eax, edi
cdq
push edx
push eax
push dword [ebp + 0x30]
push ebp
call fcn.00547ea0
mov ecx, dword [esp + 0xbc]
add esp, 0x14
test eax, eax
mov eax, dword [esp + 0xac]
jne 0x5466a1
xor edi, edi
jmp 0x5466a4
or esi, 0xffffffff
test ebx, ebx
je 0x5466d5
test eax, eax
je 0x5466d5
push dword [esp + 0x10]
mov eax, dword [ebp + 4]
push ecx
push dword [ebp + 0x30]
push dword [ebp + 0x1c]
call eax
mov ecx, dword [esp + 0x20]
add esp, 0x10
cmp eax, ecx
je 0x5466d9
mov eax, ebx
or esi, 0xffffffff
sub eax, ecx
add edi, eax
jmp 0x5465ab
mov ecx, dword [esp + 0x10]
mov eax, ebx
sub eax, ecx
add edi, eax
jmp 0x5465ab
or esi, 0xffffffff
test ebx, ebx
je 0x546896
lea edi, [ebp + 0x18]
mov eax, dword [ebp + 0x30]
lea ecx, [esp + 0x24]
push 2
push ecx
push eax
push dword [ebp + 0x1c]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 4]
mov dword [esp + 0x2c], edi
call eax
add esp, 0x10
cmp eax, 2
jne 0x54672b
mov ax, word [esp + 0x24]
movzx edi, ah
shl edi, 8
movzx eax, al
or edi, eax
mov dword [esp + 0x34], edi
jmp 0x54674b
push dword [esp + 0x28]
mov eax, dword [edi]
push dword [ebp + 0x1c]
mov dword [esp + 0x3c], 0
call eax
add esp, 8
test eax, eax
mov eax, 0xffffffff
cmovne esi, eax
mov eax, dword [ebp + 0x30]
lea ecx, [esp + 0x10]
push 2
push ecx
push eax
push dword [ebp + 0x1c]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 4]
call eax
add esp, 0x10
cmp eax, 2
jne 0x54677f
mov ax, word [esp + 0x10]
movzx edi, ah
movzx eax, al
shl edi, 8
or edi, eax
lea eax, [ebp + 0x18]
jmp 0x5467a0
mov eax, dword [esp + 0x1c]
xor edi, edi
push dword [esp + 0x28]
push dword [ebp + 0x1c]
mov eax, dword [eax]
call eax
add esp, 8
test eax, eax
je 0x54679c
or esi, 0xffffffff
jmp 0x5467a4
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x34], 1
jne 0x546862
cmp dword [esp + 0x58], 0xffffffff
jne 0x5467dc
cmp dword [esp + 0x5c], 0
jne 0x5467dc
lea eax, [esp + 0x58]
push eax
push dword [ebp + 0x30]
push ebp
call fcn.00546c90
mov ebx, dword [esp + 0x70]
add esp, 0xc
test eax, eax
mov eax, 0xffffffff
cmovne esi, eax
cmp dword [esp + 0x50], 0xffffffff
jne 0x546809
cmp dword [esp + 0x54], 0
jne 0x546809
lea eax, [esp + 0x50]
push eax
push dword [ebp + 0x30]
push ebp
call fcn.00546c90
mov ebx, dword [esp + 0x70]
add esp, 0xc
test eax, eax
mov eax, 0xffffffff
cmovne esi, eax
cmp dword [esp + 0x20], 0xffffffff
jne 0x54683a
cmp dword [esp + 0x30], 0
jne 0x54683a
lea eax, [esp + 0x2c]
push eax
push dword [ebp + 0x30]
push ebp
call fcn.00546c90
add esp, 0xc
test eax, eax
mov eax, 0xffffffff
cmovne esi, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x20], eax
cmp dword [esp + 0x6c], 0xffff
jne 0x54687d
lea eax, [esp + 0x6c]
push eax
push dword [ebp + 0x30]
push ebp
call fcn.00546c20
mov ebx, dword [esp + 0x70]
add esp, 0xc
test eax, eax
je 0x54687d
or esi, 0xffffffff
jmp 0x54687d
push 1
push 0
push edi
push dword [ebp + 0x30]
push ebp
call fcn.00547ea0
add esp, 0x14
test eax, eax
mov eax, 0xffffffff
cmovne esi, eax
mov eax, dword [esp + 0x14]
add eax, 4
add eax, edi
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x14], eax
cmp eax, ebx
jb 0x5466f2
test esi, esi
jne 0x546981
mov ecx, dword [esp + 0xb0]
test ecx, ecx
je 0x546924
mov edi, dword [esp + 0x68]
mov ebx, dword [esp + 0xb4]
cmp edi, ebx
jae 0x5468c2
mov byte [edi + ecx], 0
mov dword [esp + 0x14], edi
jmp 0x5468c6
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x18]
test eax, eax
je 0x5468f0
push 1
cdq
push edx
push eax
push dword [ebp + 0x30]
push ebp
call fcn.00547ea0
mov ecx, dword [esp + 0xc4]
add esp, 0x14
test eax, eax
mov eax, 0xffffffff
cmovne esi, eax
test edi, edi
je 0x546920
test ebx, ebx
je 0x546920
mov edi, dword [esp + 0x14]
mov eax, dword [ebp + 4]
push edi
push ecx
push dword [ebp + 0x30]
push dword [ebp + 0x1c]
call eax
add esp, 0x10
cmp eax, edi
je 0x546920
pop edi
or esi, 0xffffffff
pop ebx
mov eax, esi
pop esi
pop ebp
add esp, 0x80
ret
test esi, esi
jne 0x546981
mov eax, dword [esp + 0x98]
test eax, eax
je 0x546969
movups xmm0, xmmword [esp + 0x38]
movups xmmword [eax], xmm0
movups xmm0, xmmword [esp + 0x48]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [esp + 0x58]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [esp + 0x68]
movups xmmword [eax + 0x30], xmm0
movups xmm0, xmmword [esp + 0x78]
movups xmmword [eax + 0x40], xmm0
movq xmm0, qword [esp + 0x88]
movq qword [eax + 0x50], xmm0
mov ecx, dword [esp + 0x9c]
test ecx, ecx
je 0x546981
mov eax, dword [esp + 0x20]
mov dword [ecx], eax
mov eax, dword [esp + 0x30]
mov dword [ecx + 4], eax
pop edi
pop ebx
mov eax, esi
pop esi
pop ebp
add esp, 0x80
ret