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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x160
and dword [esp + 0x40], 0
and dword [esp + 0x48], 0
and dword [esp + 0x50], 0
and dword [esp + 0x58], 0
and dword [esp + 0x60], 0
and dword [esp + 0x68], 0
and dword [esp + 0x70], 0
and dword [esp + 0x78], 0
and dword [esp + 0x80], 0
and dword [esp + 0x88], 0
and dword [esp + 0x90], 0
and dword [esp + 0x98], 0
and dword [esp + 0xa0], 0
and dword [esp + 0xa8], 0
and dword [esp + 0xb0], 0
and dword [esp + 0xb8], 0
and dword [esp + 0xc0], 0
and dword [esp + 0xc8], 0
and dword [esp + 0xd0], 0
and dword [esp + 0xd8], 0
and dword [esp + 0xe0], 0
and dword [esp + 0xe8], 0
and dword [esp + 0xf0], 0
and dword [esp + 0xf8], 0
and dword [esp + 0x100], 0
and dword [esp + 0x108], 0
and dword [esp + 0x110], 0
and dword [esp + 0x118], 0
and dword [esp + 0x120], 0
and dword [esp + 0x128], 0
and dword [esp + 0x130], 0
mov ebx, dword [ebp + 8]
and dword [esp + 0x138], 0
mov edi, edx
mov esi, ecx
call fcn.004becbe
lea eax, [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov edx, ebx
mov dword [esp], esi
mov dword [esp + 8], eax
mov eax, dword [esi + 0x10]
cmp edi, eax
sbb edx, ecx
cmovb ebx, ecx
cmovb edi, eax
lea eax, [esi + 0x18]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], edi
mov dword [esp + 0x10], eax
push 0xfffffffffffffffe
pop ebx
mov dword [esp + 4], 0
mov ecx, dword [esp + 0x10]
call 0x5d5b4c
test eax, eax
jne 0x5d59a0
mov edx, dword [esp + 8]
lea ecx, [esp + 0x20]
call fcn.005d5393
mov eax, dword [esp + 0x20]
or eax, dword [esp + 0x24]
je 0x5d597d
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x18], eax
mov dword [esp + 0xc], eax
sbb edx, ecx
jb 0x5d597d
mov eax, dword [esp]
mov edi, ecx
mov ecx, dword [eax + 0x24]
mov edx, dword [eax + 0x28]
push 0x78b5a0
push dword [esp + 0x34]
call fcn.005d5b6d
pop ecx
pop edx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x1c], eax
xor eax, eax
xor esi, esi
mov edx, 0
inc esi
shld eax, esi, cl
shl esi, cl
test cl, 0x20
cmovne eax, esi
cmovne esi, edx
mov edx, dword [esp + 0x1c]
not esi
not eax
and dword [edx + 0x200], esi
and dword [edx + 0x204], eax
cmp ecx, 0x40
jae 0x5d5ae0
mov eax, edx
mov edx, dword [edx + ecx*8]
mov esi, dword [eax + ecx*8 + 4]
and dword [eax + ecx*8], 0
and dword [eax + ecx*8 + 4], 0
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], esi
lea ecx, [esp + 0x38]
call 0x5d5b4c
test eax, eax
je 0x5d5966
movq xmm0, qword [eax + 0x18]
mov esi, eax
movd eax, xmm0
pshufd xmm0, xmm0, 0x55
movd edx, xmm0
cmp eax, 0xfffffffe
mov ecx, edx
sbb ecx, 0xffffffff
jae 0x5d5aed
cmp dword [esp + 0xc], eax
mov ecx, edi
sbb ecx, edx
jb 0x5d58f5
xor ecx, ecx
dec ecx
lock cmpxchg8b qword [esi + 0x18]
jne 0x5d58bd
pcmpeqd xmm0, xmm0
mov edx, esi
movq qword [esi + 8], xmm0
mov ecx, dword [esp + 0x10]
call fcn.005d5b8b
jmp 0x5d5898
movd xmm1, edx
movd xmm0, eax
xor edx, edi
punpckldq xmm0, xmm1
mov ecx, edx
movq qword [esi + 8], xmm0
xor eax, dword [esp + 0xc]
or eax, 0x3f
cmp eax, 0xfffffffe
sbb ecx, 0xf
cmovae eax, ebx
push 0xf
pop ecx
cmovae edx, ecx
bsr eax, eax
xor eax, 0x1f
bsr ecx, edx
or al, 0x20
xor ecx, 0x1f
test edx, edx
movzx eax, al
cmovne eax, ecx
mov cl, 6
xor al, 0x3e
movzx eax, al
div cl
mov edx, dword [esp]
movzx eax, al
mov ecx, dword [edx + 0x24]
mov edx, dword [edx + 0x28]
push 0x78b560
push eax
call fcn.005d5b6d
pop ecx
pop edx
mov ecx, eax
mov edx, esi
call fcn.005d5bc1
jmp 0x5d5898
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 8]
push dword [esp + 0x2c]
call fcn.005d5c1e
pop eax
jmp 0x5d57de
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x18]
push dword [esp + 0x14]
call fcn.005d5c1e
pop eax
mov ecx, dword [esp + 0x10]
call 0x5d5b4c
test eax, eax
je 0x5d5a34
mov ecx, eax
xor edx, edx
call fcn.005d5c8e
test eax, eax
je 0x5d57de
mov edi, dword [esp + 4]
cmp edi, 0x1f
ja 0x5d5b1a
mov esi, eax
mov eax, dword [esp + edi*8 + 0x40]
test eax, eax
je 0x5d59da
push dword [esp + edi*8 + 0x44]
mov dword [esp + 0x10], edx
call dword [eax + 0xc]
mov edx, dword [esp + 0x10]
add esp, 4
mov dword [esp + edi*8 + 0x40], esi
mov dword [esp + edi*8 + 0x44], edx
inc edi
cmp edi, 0x20
mov dword [esp + 4], edi
jne 0x5d57de
mov ecx, dword [esp]
call fcn.00415c36
push 0xffffffffffffffe0
pop esi
test esi, esi
je 0x5d5a27
mov eax, dword [esp + esi*8 + 0x140]
mov ecx, dword [esp + esi*8 + 0x144]
and dword [esp + esi*8 + 0x140], 0
test eax, eax
je 0x5d5b33
push ecx
call dword [eax + 4]
add esp, 4
inc esi
jmp 0x5d59fb
mov ecx, dword [esp]
call fcn.004becbe
jmp 0x5d57d6
mov edx, dword [esp + 8]
lea esi, [esp + 0x140]
mov ecx, esi
call fcn.005d5393
mov ecx, dword [esi + 8]
mov edi, dword [esi + 0xc]
xor eax, eax
mov ebx, 1
cmp ecx, 1
mov edx, ecx
adc edx, eax
test edi, edi
cmovne ebx, ecx
mov ecx, dword [esi]
cmove ebx, edx
or ecx, dword [esi + 4]
mov ecx, dword [esp]
cmove ebx, eax
cmove edi, eax
mov dword [ecx + 0xc], edi
mov dword [ecx + 8], ebx
call fcn.00415c36
mov edi, dword [esp + 4]
cmp edi, 0x21
jae 0x5d5b3d
shl edi, 3
lea esi, [esp + 0x40]
test edi, edi
je 0x5d5ab2
mov eax, dword [esi]
mov ecx, dword [esi + 4]
and dword [esi], 0
test eax, eax
je 0x5d5b29
add esi, 8
push ecx
call dword [eax + 4]
add esp, 4
add edi, 0xfffffff8
jmp 0x5d5a8f
mov esi, 0xffffff00
test esi, esi
je 0x5d5ad8
mov eax, dword [esp + esi + 0x140]
test eax, eax
je 0x5d5ad3
push dword [esp + esi + 0x144]
call dword [eax + 0xc]
add esp, 4
add esi, 8
jmp 0x5d5ab7
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x40
pop edx
push 0x78b4ac
call fcn.0062d3f0
lea ecx, [esp + 0x140]
mov edx, 0x78b3c8
mov dword [ecx], 0x78b350
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], 0x7b0e68
and dword [ecx + 0xc], 0
call fcn.0062d360
push 0x20
pop edx
mov ecx, edi
push 0x78b678
call fcn.0062d3f0
mov ecx, 0x78b6a8
call fcn.0062d7f0
mov ecx, 0x78b688
call fcn.0062d7f0
push 0x20
pop edx
mov ecx, edi
push 0x78b698
call fcn.0062d450
mov eax, dword [ecx + 4]
test eax, eax
je 0x5d5b6c
push esi
mov edx, dword [eax]
lea esi, [edx + 4]
test edx, edx
mov dword [ecx + 4], edx
cmove esi, ecx
and dword [esi], 0
and dword [eax], 0
and dword [eax + 4], 0
pop esi
ret