Function at 0x4edc64
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], 0x505ed0
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.004ea513
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.004ee4dd
test eax, eax
jne 0x4edfa5
mov edx, dword [esi + 0x14]
lea ecx, [esi + 0x28]
mov byte [esi + 3], 1
mov dword [esi + 0x170], 1
call fcn.004ee4fe
mov eax, dword [esi + 0x28]
mov edx, dword [esi + 0x18]
or eax, dword [esi + 0x2c]
je 0x4edf82
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 0x4edf82
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 0x592114
push eax
call fcn.004ee726
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 0x4ee147
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.004ee4dd
test eax, eax
je 0x4edf69
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 0x4ee15b
cmp dword [esi + 0x10], eax
mov edi, dword [esi + 0x24]
sbb edi, edx
jb 0x4edee2
mov edi, dword [esi + 4]
lock cmpxchg8b qword [edi + 0x18]
jne 0x4ede9c
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.004ee744
jmp 0x4ede71
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 0x5920d4
push eax
call fcn.004ee726
pop ecx
pop edx
mov edx, dword [esi + 4]
mov ecx, eax
mov byte [esi + 3], 1
call fcn.004ee77a
jmp 0x4ede71
mov eax, dword [esi + 0x34]
mov edx, dword [esi + 0x30]
mov ecx, dword [esi + 0x14]
mov byte [esi + 3], 1
push eax
call fcn.004ee6b6
pop eax
jmp 0x4eddb9
mov ecx, dword [esi + 0x14]
mov byte [esi + 3], 1
push dword [esi + 0x20]
call fcn.004ee6b6
pop eax
mov ecx, dword [esi + 0x1c]
call fcn.004ee4dd
mov edx, dword [esi + 0xc]
test eax, eax
je 0x4ee078
mov ecx, eax
xor edx, edx
call fcn.004ee7d7
test eax, eax
je 0x4eddb9
mov ecx, dword [esi + 8]
mov dword [esi + 0x10], edx
mov dword [esi + 4], eax
cmp ecx, 0x1f
mov dword [esi + 8], ecx
ja 0x4ee18f
mov eax, dword [esi + ecx*8 + 0x60]
test eax, eax
je 0x4edfeb
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 0x4eddb9
mov ecx, dword [esi + 0xc]
mov byte [esi + 3], 0
mov dword [esi + 0x170], 1
call fcn.00470887
xor eax, eax
cmp eax, 0x20
je 0x4ee060
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 0x5921f4
mov dword [esi + 4], eax
call fcn.004ee80b
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 0x4ee021
mov ecx, dword [esi + 0xc]
mov byte [esi + 3], 0
mov dword [esi + 8], 0
call fcn.004ea513
jmp 0x4eddb9
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.004ee4fe
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.00470887
mov ecx, dword [esi + 8]
cmp ecx, 0x21
jae 0x4ee1a9
lea eax, [esi + ecx*8 + 0x60]
mov dword [esi + 0x10], eax
lea eax, [esi + 0x60]
cmp eax, dword [esi + 0x10]
je 0x4ee124
mov ecx, dword [eax]
mov edx, dword [eax + 4]
and dword [eax], 0
mov byte [esi + 3], 0
push 0x592214
mov dword [esi + 4], eax
call fcn.004ee80b
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 0x4ee0e8
or dword [esi + 0x170], 0xffffffff
lea ecx, [esi + 0x60]
call fcn.004ee43a
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 0x592024
call fcn.00535ff0
pop eax
jmp 0x4ee1bb
xor eax, eax
lea ecx, [esi + 0x48]
mov edx, 0x591f48
mov byte [esi + 3], 1
inc eax
mov dword [ecx], 0x591ed4
mov dword [ecx + 4], eax
and dword [ecx + 0x10], 0
mov dword [ecx + 8], 0x5b8dd0
and dword [ecx + 0xc], 0
mov dword [esi + 0x170], eax
call fcn.00535f60
jmp 0x4ee1bb
mov dword [esi + 0x170], 2
push 0x20
pop edx
push 0x5921e4
call fcn.00535ff0
pop eax
jmp 0x4ee1bb
mov byte [esi + 3], 0
push 0x20
pop edx
push 0x592204
call fcn.00536050
pop eax
ud2