Function at 0x4ec41e
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], 0x504860
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.004e8cd4
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.004ecc12
test eax, eax
jne 0x4ec760
mov edx, dword [esi + 0x14]
lea ecx, [esi + 0x28]
mov byte [esi + 3], 1
mov dword [esi + 0x170], 1
call fcn.004ecc33
mov eax, dword [esi + 0x28]
mov edx, dword [esi + 0x18]
or eax, dword [esi + 0x2c]
je 0x4ec73d
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 0x4ec73d
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 0x5818e8
push eax
call fcn.004ece70
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 0x4ec8e4
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.004ecc12
test eax, eax
je 0x4ec724
movq xmm0, qword [eax + 0x18]
mov edi, eax
movd eax, xmm0
pshufd xmm0, xmm0, 0x55
movd edx, xmm0
push 0xfffffffffffffffe
pop ebx
xor ecx, ecx
mov dword [esi + 4], edi
dec ecx
cmp eax, 0xfffffffe
mov edi, edx
sbb edi, 0xffffffff
jae 0x4ec8fb
cmp dword [esi + 0x10], eax
mov edi, dword [esi + 0x24]
sbb edi, edx
jb 0x4ec69d
mov edi, dword [esi + 4]
lock cmpxchg8b qword [edi + 0x18]
jne 0x4ec658
pcmpeqd xmm0, xmm0
mov edx, edi
movq qword [edi + 8], xmm0
mov byte [esi + 3], 1
mov dword [esi + 0x170], 1
mov ecx, dword [esi + 0x1c]
call fcn.004ece8e
jmp 0x4ec62b
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 0x5818a8
push eax
call fcn.004ece70
pop ecx
pop edx
mov edx, dword [esi + 4]
mov ecx, eax
mov byte [esi + 3], 1
call fcn.004ecec4
jmp 0x4ec62b
mov eax, dword [esi + 0x34]
mov edx, dword [esi + 0x30]
mov ecx, dword [esi + 0x14]
mov byte [esi + 3], 1
push eax
call fcn.004ece00
pop eax
jmp 0x4ec573
mov ecx, dword [esi + 0x14]
mov byte [esi + 3], 1
push dword [esi + 0x20]
call fcn.004ece00
pop eax
mov ecx, dword [esi + 0x1c]
call fcn.004ecc12
mov edx, dword [esi + 0xc]
test eax, eax
je 0x4ec829
mov ecx, eax
xor edx, edx
call fcn.004ecf21
test eax, eax
je 0x4ec573
mov ecx, dword [esi + 8]
mov dword [esi + 0x10], edx
mov dword [esi + 4], eax
cmp ecx, 0x1f
mov dword [esi + 8], ecx
ja 0x4ec92f
mov eax, dword [esi + ecx*8 + 0x60]
test eax, eax
je 0x4ec7a6
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 0x4ec573
mov ecx, dword [esi + 0xc]
mov byte [esi + 3], 0
mov dword [esi + 0x170], 1
call fcn.00473415
xor edx, edx
cmp edx, 0x100
je 0x4ec811
mov ecx, dword [esi + edx + 0x60]
mov eax, dword [esi + edx + 0x64]
and dword [esi + edx + 0x60], 0
test ecx, ecx
je 0x4ec959
mov ecx, dword [ecx + 4]
add edx, 8
mov byte [esi + 3], 0
mov dword [esi + 4], edx
push eax
call ecx
mov edx, dword [esi + 4]
add esp, 4
jmp 0x4ec7dc
mov ecx, dword [esi + 0xc]
mov byte [esi + 3], 0
mov dword [esi + 8], 0
call fcn.004e8cd4
jmp 0x4ec573
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.004ecc33
mov edx, dword [esi + 0x50]
mov ebx, dword [esi + 0x54]
xor ecx, ecx
mov eax, 1
cmp edx, 1
mov edi, edx
adc edi, ecx
test ebx, ebx
cmovne eax, edx
cmove eax, edi
mov edi, dword [esi + 0x48]
or edi, dword [esi + 0x4c]
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.00473415
mov ecx, dword [esi + 8]
cmp ecx, 0x21
jae 0x4ec969
lea eax, [esi + ecx*8 + 0x60]
lea edx, [esi + 0x60]
mov dword [esi + 0x10], eax
cmp edx, dword [esi + 0x10]
je 0x4ec8c1
mov ecx, dword [edx]
mov eax, dword [edx + 4]
and dword [edx], 0
test ecx, ecx
je 0x4ec949
mov ecx, dword [ecx + 4]
add edx, 8
mov byte [esi + 3], 0
mov dword [esi + 4], edx
push eax
call ecx
mov edx, dword [esi + 4]
add esp, 4
jmp 0x4ec894
or dword [esi + 0x170], 0xffffffff
lea ecx, [esi + 0x60]
call fcn.004ecb6f
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 0x5817f8
call fcn.00526920
pop eax
jmp 0x4ec97b
xor eax, eax
lea ecx, [esi + 0x48]
mov edx, 0x58171c
mov byte [esi + 3], 1
inc eax
mov dword [ecx], 0x5816a8
mov dword [ecx + 4], eax
and dword [ecx + 0x10], 0
mov dword [ecx + 8], 4
and dword [ecx + 0xc], 0
mov dword [esi + 0x170], eax
call fcn.005268e0
jmp 0x4ec97b
mov dword [esi + 0x170], 2
push 0x20
pop edx
push 0x5819b8
call fcn.00526920
pop eax
jmp 0x4ec97b
mov ecx, 0x5819e8
mov byte [esi + 3], 0
call fcn.00526c90
jmp 0x4ec97b
mov ecx, 0x5819c8
mov byte [esi + 3], 0
call fcn.00526c90
jmp 0x4ec97b
mov byte [esi + 3], 0
push 0x20
pop edx
push 0x5819d8
call fcn.00526980
pop eax
ud2