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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x178
mov esi, esp
mov dword [esi + 0x160], ebp
lea eax, [esi + 0x168]
mov dword [esi + 0x18], edx
mov dword [esi + 0xc], ecx
mov dword [eax - 4], esp
or dword [eax + 8], 0xffffffff
mov dword [eax + 4], 0x5069b0
mov edx, dword fs:[0]
mov dword [eax], edx
mov dword fs:[0], eax
and dword [esi + 0x60], 0
and dword [esi + 0x68], 0
and dword [esi + 0x70], 0
and dword [esi + 0x78], 0
and dword [esi + 0x80], 0
and dword [esi + 0x88], 0
and dword [esi + 0x90], 0
and dword [esi + 0x98], 0
and dword [esi + 0xa0], 0
and dword [esi + 0xa8], 0
and dword [esi + 0xb0], 0
and dword [esi + 0xb8], 0
and dword [esi + 0xc0], 0
and dword [esi + 0xc8], 0
and dword [esi + 0xd0], 0
and dword [esi + 0xd8], 0
and dword [esi + 0xe0], 0
and dword [esi + 0xe8], 0
and dword [esi + 0xf0], 0
and dword [esi + 0xf8], 0
and dword [esi + 0x100], 0
and dword [esi + 0x108], 0
and dword [esi + 0x110], 0
and dword [esi + 0x118], 0
and dword [esi + 0x120], 0
and dword [esi + 0x128], 0
and dword [esi + 0x130], 0
and dword [esi + 0x138], 0
and dword [esi + 0x140], 0
and dword [esi + 0x148], 0
and dword [esi + 0x150], 0
and dword [esi + 0x158], 0
and dword [eax + 8], 0
call fcn.004eaff1
mov ebx, dword [esi + 0xc]
mov edi, dword [ebp + 8]
mov eax, dword [esi + 0x18]
mov dword [esi + 8], 0
mov edx, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
mov dword [esi + 4], edx
cmp eax, edx
mov edx, edi
sbb edx, ecx
lea edx, [ebx + 0x18]
cmovb eax, dword [esi + 4]
cmovb edi, ecx
lea ecx, [ebx + 0x20]
mov dword [esi + 0x14], edx
mov dword [esi + 0x20], edi
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x1c]
call fcn.004eefbd
test eax, eax
jne 0x4eea85
mov edx, dword [esi + 0x14]
lea ecx, [esi + 0x28]
mov byte [esi + 3], 1
mov dword [esi + 0x170], 1
call fcn.004eefde
mov eax, dword [esi + 0x28]
mov edx, dword [esi + 0x18]
or eax, dword [esi + 0x2c]
je 0x4eea62
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x34]
mov edi, dword [esi + 0x20]
cmp edx, eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x24], ecx
sbb edi, ecx
jb 0x4eea62
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 0x38]
mov ecx, dword [edx + 0x2c]
mov edx, dword [edx + 0x30]
mov byte [esi + 3], 1
push 0x593120
push eax
call fcn.004ef206
pop ecx
pop edx
mov ecx, dword [esi + 0x3c]
xor edx, edx
xor edi, edi
mov ebx, 0
inc edi
shld edx, edi, cl
shl edi, cl
test cl, 0x20
cmovne edx, edi
cmovne edi, ebx
not edi
not edx
and dword [eax + 0x200], edi
and dword [eax + 0x204], edx
cmp ecx, 0x40
jae 0x4eec27
mov edx, dword [eax + ecx*8]
mov edi, dword [eax + ecx*8 + 4]
and dword [eax + ecx*8], 0
and dword [eax + ecx*8 + 4], 0
mov dword [esi + 0x40], edx
mov dword [esi + 0x44], edi
lea ecx, [esi + 0x40]
call fcn.004eefbd
test eax, eax
je 0x4eea49
mov dword [esi + 4], eax
movq xmm0, qword [eax + 0x18]
movd eax, xmm0
pshufd xmm0, xmm0, 0x55
movd edx, xmm0
push 0xfffffffffffffffe
pop ebx
xor ecx, ecx
dec ecx
cmp eax, 0xfffffffe
mov edi, edx
sbb edi, 0xffffffff
jae 0x4eec3b
cmp dword [esi + 0x10], eax
mov edi, dword [esi + 0x24]
sbb edi, edx
jb 0x4ee9c2
mov edi, dword [esi + 4]
lock cmpxchg8b qword [edi + 0x18]
jne 0x4ee97c
mov edx, dword [esi + 4]
pcmpeqd xmm0, xmm0
movq qword [edx + 8], xmm0
mov byte [esi + 3], 1
mov dword [esi + 0x170], 1
mov ecx, dword [esi + 0x1c]
call fcn.004ef224
jmp 0x4ee951
mov ecx, dword [esi + 4]
movd xmm0, eax
movd xmm1, edx
punpckldq xmm0, xmm1
movq qword [ecx + 8], xmm0
xor eax, dword [esi + 0x10]
xor edx, dword [esi + 0x24]
or eax, 0x3f
mov ecx, edx
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 [esi + 0xc]
movzx eax, al
mov ecx, dword [edx + 0x2c]
mov edx, dword [edx + 0x30]
mov byte [esi + 3], 1
mov dword [esi + 0x170], 1
push 0x5930e0
push eax
call fcn.004ef206
pop ecx
pop edx
mov edx, dword [esi + 4]
mov ecx, eax
mov byte [esi + 3], 1
call fcn.004ef25a
jmp 0x4ee951
mov eax, dword [esi + 0x34]
mov edx, dword [esi + 0x30]
mov ecx, dword [esi + 0x14]
mov byte [esi + 3], 1
push eax
call fcn.004ef196
pop eax
jmp 0x4ee899
mov ecx, dword [esi + 0x14]
mov byte [esi + 3], 1
push dword [esi + 0x20]
call fcn.004ef196
pop eax
mov ecx, dword [esi + 0x1c]
call fcn.004eefbd
mov edx, dword [esi + 0xc]
test eax, eax
je 0x4eeb58
mov ecx, eax
xor edx, edx
call fcn.004ef2b7
test eax, eax
je 0x4ee899
mov ecx, dword [esi + 8]
mov dword [esi + 0x10], edx
mov dword [esi + 4], eax
cmp ecx, 0x1f
mov dword [esi + 8], ecx
ja 0x4eec6f
mov eax, dword [esi + ecx*8 + 0x60]
test eax, eax
je 0x4eeacb
mov ecx, dword [esi + 8]
mov eax, dword [eax + 0xc]
mov dword [esi + 0x170], 3
mov ecx, dword [esi + ecx*8 + 0x64]
push ecx
call eax
pop eax
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0x10]
mov dword [esi + ecx*8 + 0x60], eax
mov dword [esi + ecx*8 + 0x64], edx
inc ecx
cmp ecx, 0x20
mov dword [esi + 8], ecx
jne 0x4ee899
mov ecx, dword [esi + 0xc]
mov byte [esi + 3], 0
mov dword [esi + 0x170], 1
call fcn.00471357
xor eax, eax
cmp eax, 0x20
je 0x4eeb40
mov ecx, dword [esi + eax*8 + 0x60]
mov edx, dword [esi + eax*8 + 0x64]
and dword [esi + eax*8 + 0x60], 0
mov byte [esi + 3], 0
push 0x593200
mov dword [esi + 4], eax
call fcn.004ef2eb
mov ecx, dword [esi + 4]
add esp, 4
mov eax, dword [eax + 4]
inc ecx
mov byte [esi + 3], 0
mov dword [esi + 4], ecx
push edx
call eax
mov eax, dword [esi + 4]
add esp, 4
jmp 0x4eeb01
mov ecx, dword [esi + 0xc]
mov byte [esi + 3], 0
mov dword [esi + 8], 0
call fcn.004eaff1
jmp 0x4ee899
mov eax, dword [edx + 0x18]
mov ecx, dword [edx + 0x1c]
mov dword [edx + 0xc], ecx
mov dword [edx + 8], eax
mov edx, dword [esi + 0x14]
lea ecx, [esi + 0x48]
mov byte [esi + 3], 1
call fcn.004eefde
mov edx, dword [esi + 0x50]
mov ebx, dword [esi + 0x54]
mov ecx, dword [esi + 0x48]
xor eax, eax
cmp edx, 1
mov edi, edx
adc edi, eax
test ebx, ebx
mov eax, 1
cmovne eax, edx
cmove eax, edi
or ecx, dword [esi + 0x4c]
mov ecx, 0
cmove eax, ecx
cmove ebx, ecx
mov ecx, dword [esi + 0xc]
mov dword [ecx + 0x14], ebx
mov dword [ecx + 0x10], eax
mov byte [esi + 3], 0
call fcn.00471357
mov ecx, dword [esi + 8]
cmp ecx, 0x21
jae 0x4eec89
lea eax, [esi + ecx*8 + 0x60]
mov dword [esi + 0x10], eax
lea eax, [esi + 0x60]
cmp eax, dword [esi + 0x10]
je 0x4eec04
mov ecx, dword [eax]
mov edx, dword [eax + 4]
and dword [eax], 0
mov byte [esi + 3], 0
push 0x593220
mov dword [esi + 4], eax
call fcn.004ef2eb
mov ecx, dword [esi + 4]
add esp, 4
mov eax, dword [eax + 4]
add ecx, 8
mov byte [esi + 3], 0
mov dword [esi + 4], ecx
push edx
call eax
mov eax, dword [esi + 4]
add esp, 4
jmp 0x4eebc8
or dword [esi + 0x170], 0xffffffff
lea ecx, [esi + 0x60]
call fcn.004eef1a
mov eax, dword [esi + 0x168]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov byte [esi + 3], 1
push 0x40
pop edx
push 0x593030
call fcn.005372f0
pop eax
jmp 0x4eec9b
xor eax, eax
lea ecx, [esi + 0x48]
mov edx, 0x592f54
mov byte [esi + 3], 1
inc eax
mov dword [ecx], 0x592ee0
mov dword [ecx + 4], eax
and dword [ecx + 0x10], 0
mov dword [ecx + 8], 0x5b9dc0
and dword [ecx + 0xc], 0
mov dword [esi + 0x170], eax
call fcn.00537260
jmp 0x4eec9b
mov dword [esi + 0x170], 2
push 0x20
pop edx
push 0x5931f0
call fcn.005372f0
pop eax
jmp 0x4eec9b
mov byte [esi + 3], 0
push 0x20
pop edx
push 0x593210
call fcn.00537350
pop eax
ud2