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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x460
mov esi, esp
mov dword [esi + 0x1c], ebp
mov bl, byte [ebp + 0x14]
mov byte [esi + 0x53], bl
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov dword [esi + 0x54], ecx
mov eax, dword [ebp + 8]
mov dword [esi + 0x58], eax
mov edx, esp
mov dword [esi + 0x44c], edx
mov dword [esi + 0x458], 0xffffffff
lea edx, [esi + 0x450]
mov dword [esi + 0x454], 0x4f0520
mov edi, dword fs:[0]
mov dword [esi + 0x450], edi
mov dword fs:[0], edx
mov dl, bl
and dl, 1
mov byte [esi + 0x73], dl
mov edi, eax
add edi, 0x10
mov dword [esi + 0x5c], edi
lea edx, [ebp + 0x10]
mov dword [esi + 0x68], edx
lea edx, [0x40e950]
mov dword [esi + 0x6c], edx
mov edx, dword [esi + 0x6c]
mov dword [esi + 0x60], edx
mov dword [esi + 0x88], eax
mov dword [esi + 0x8c], edi
mov dword [esi + 0x90], ecx
lea edi, [esi + 0x68]
mov dword [esi + 0x94], edi
lea edi, [0x601d98]
mov dword [esi + 0x98], edi
and bl, 1
mov byte [esi + 0x9f], bl
mov dword [esi + 0xa0], 0x60
mov dword [esi + 0xa4], 0x10
mov dword [esi + 0xa8], edx
mov eax, dword [eax + 0xc]
mov dword [esi + 0x64], eax
mov dword [esi + 0xac], eax
add eax, ecx
setb al
and al, 1
mov byte [esi + 0xb3], al
test byte [esi + 0xb3], 1
jne 0x4ec48a
mov eax, dword [esi + 0x58]
mov edx, dword [esi + 0x54]
mov ecx, dword [esi + 0x64]
add ecx, edx
mov dword [esi + 0x80], ecx
mov dword [esi + 0x7c], 1
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x48], ecx
mov dword [esi + 0xb4], ecx
mov eax, dword [eax + 4]
mov dword [esi + 0x4c], eax
mov dword [esi + 0xb8], eax
cmp eax, 8
jb 0x4ec4d3
jmp 0x4ec4bf
mov al, byte [esi + 0x53]
mov dword [esi + 0x458], 0
movzx ecx, al
and ecx, 1
mov eax, esp
mov dword [eax], ecx
call fcn.005ec6d0
mov dword [esi + 0x40], edx
mov dword [esi + 0x44], eax
jmp 0x4ec4ae
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
mov dword [esi + 0x74], ecx
mov dword [esi + 0x78], eax
jmp 0x4eceed
mov eax, dword [esi + 0x4c]
add eax, 1
shr eax, 3
imul eax, eax, 7
mov dword [esi + 0x84], eax
jmp 0x4ec4dc
mov eax, dword [esi + 0x4c]
mov dword [esi + 0x84], eax
mov eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x84]
shr ecx, 1
cmp eax, ecx
jbe 0x4eceaf
mov ecx, dword [esi + 0x48]
mov edx, dword [esi + 0x84]
inc edx
mov dword [esi + 0xbc], edx
mov dword [esi + 0x458], 0
mov eax, esp
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.00560e40
mov dword [esi + 0x3c], eax
jmp 0x4ec51a
mov ecx, dword [esi + 0x5c]
mov edx, dword [esi + 0x3c]
mov al, byte [esi + 0x53]
mov edi, dword [esi + 0x58]
mov dword [esi + 0x240], edi
mov dword [esi + 0x244], ecx
mov dword [esi + 0x248], edx
lea edi, [esi + 0x68]
mov dword [esi + 0x24c], edi
mov dword [esi + 0x250], 0x601d98
mov ah, al
and ah, 1
mov byte [esi + 0x257], ah
mov dword [esi + 0x258], 0x60
mov dword [esi + 0x25c], 0x10
mov dword [esi + 0x260], 0
mov dword [esi + 0x264], 0
mov byte [esi + 0x26b], 0
mov dword [esi + 0x26c], 0x10
mov byte [esi + 0x272], 1
mov byte [esi + 0x273], 1
movzx edi, al
and edi, 1
mov eax, esp
mov dword [eax + 0x14], edi
mov dword [eax + 0x10], edx
mov dword [eax + 4], ecx
lea ecx, [esi + 0x1a0]
mov dword [eax], ecx
mov dword [eax + 0xc], 0x10
mov dword [eax + 8], 0x60
call fcn.00531af0
jmp 0x4ec5cb
mov edx, dword [esi + 0x1a0]
xor eax, eax
mov ecx, 1
cmp edx, 0
cmove eax, ecx
cmp eax, 0
jne 0x4ec70d
mov eax, dword [esi + 0x5c]
mov ecx, dword [esi + 0x1a0]
mov dword [esi + 0x1f0], ecx
mov ecx, dword [esi + 0x1a4]
mov dword [esi + 0x1f4], ecx
mov ecx, dword [esi + 0x1a8]
mov dword [esi + 0x1f8], ecx
mov ecx, dword [esi + 0x1ac]
mov dword [esi + 0x1fc], ecx
mov ecx, dword [esi + 0x1f0]
mov dword [esi + 0x190], ecx
mov ecx, dword [esi + 0x1f4]
mov dword [esi + 0x194], ecx
mov ecx, dword [esi + 0x1f8]
mov dword [esi + 0x198], ecx
mov ecx, dword [esi + 0x1fc]
mov dword [esi + 0x19c], ecx
mov ecx, dword [esi + 0x190]
mov dword [esi + 0x1b8], ecx
mov ecx, dword [esi + 0x194]
mov dword [esi + 0x1bc], ecx
mov ecx, dword [esi + 0x198]
mov dword [esi + 0x1c0], ecx
mov ecx, dword [esi + 0x19c]
mov dword [esi + 0x1c4], ecx
mov dword [esi + 0x1e4], eax
mov dword [esi + 0x1e8], 0x60
mov dword [esi + 0x1ec], 0x10
mov eax, dword [esi + 0x1e4]
mov dword [esi + 0x1c8], eax
mov eax, dword [esi + 0x1e8]
mov dword [esi + 0x1cc], eax
mov eax, dword [esi + 0x1ec]
mov dword [esi + 0x1d0], eax
mov eax, dword [esi + 0x1b8]
mov dword [esi + 0x1d4], eax
mov eax, dword [esi + 0x1bc]
mov dword [esi + 0x1d8], eax
mov eax, dword [esi + 0x1c0]
mov dword [esi + 0x1dc], eax
mov eax, dword [esi + 0x1c4]
mov dword [esi + 0x1e0], eax
lea ecx, [esi + 0x104]
lea eax, [esi + 0x1c8]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0x1c
call sub.VCRUNTIME140.dll_memcpy
jmp 0x4ec799
mov ecx, dword [esi + 0x1a4]
mov eax, dword [esi + 0x1a8]
mov dword [esi + 0x274], ecx
mov dword [esi + 0x278], eax
mov dword [esi + 0x200], ecx
mov dword [esi + 0x204], eax
mov ecx, dword [esi + 0x200]
mov eax, dword [esi + 0x204]
mov dword [esi + 0x194], ecx
mov dword [esi + 0x198], eax
mov dword [esi + 0x190], 0
mov ecx, dword [esi + 0x194]
mov eax, dword [esi + 0x198]
mov dword [esi + 0x1b0], ecx
mov dword [esi + 0x1b4], eax
mov ecx, dword [esi + 0x1b0]
mov eax, dword [esi + 0x1b4]
mov dword [esi + 0x27c], ecx
mov dword [esi + 0x280], eax
mov dword [esi + 0x108], ecx
mov dword [esi + 0x10c], eax
mov dword [esi + 0x104], 0
mov edx, dword [esi + 0x104]
xor eax, eax
mov ecx, 1
cmp edx, 0
cmove eax, ecx
cmp eax, 0
jne 0x4ec91c
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x11c]
mov dword [esi + 0x220], ecx
movsd xmm0, qword [esi + 0x114]
movsd qword [esi + 0x218], xmm0
movsd xmm0, qword [esi + 0x104]
movsd xmm1, qword [esi + 0x10c]
movsd qword [esi + 0x210], xmm1
movsd qword [esi + 0x208], xmm0
mov ecx, dword [esi + 0x220]
mov dword [esi + 0x100], ecx
movsd xmm0, qword [esi + 0x218]
movsd qword [esi + 0xf8], xmm0
movsd xmm0, qword [esi + 0x208]
movsd xmm1, qword [esi + 0x210]
movsd qword [esi + 0xf0], xmm1
movsd qword [esi + 0xe8], xmm0
mov ecx, dword [esi + 0x100]
mov dword [esi + 0x188], ecx
movsd xmm0, qword [esi + 0xf8]
movsd qword [esi + 0x180], xmm0
movsd xmm0, qword [esi + 0xe8]
movsd xmm1, qword [esi + 0xf0]
movsd qword [esi + 0x178], xmm1
movsd qword [esi + 0x170], xmm0
mov ecx, dword [esi + 0x188]
mov dword [esi + 0x140], ecx
movsd xmm0, qword [esi + 0x180]
movsd qword [esi + 0x138], xmm0
movsd xmm0, qword [esi + 0x170]
movsd xmm1, qword [esi + 0x178]
movsd qword [esi + 0x130], xmm1
movsd qword [esi + 0x128], xmm0
mov ecx, dword [esi + 0x140]
mov dword [esi + 0xe0], ecx
movsd xmm0, qword [esi + 0x138]
movsd qword [esi + 0xd8], xmm0
movsd xmm0, qword [esi + 0x128]
movsd xmm1, qword [esi + 0x130]
movsd qword [esi + 0xd0], xmm1
movsd qword [esi + 0xc8], xmm0
mov ecx, dword [eax]
mov dword [esi + 0x38], ecx
mov dword [esi + 0x284], ecx
mov dword [esi + 0x288], ecx
mov dword [esi + 0x28c], ecx
mov dword [esi + 0x458], 1
mov eax, esp
mov dword [eax + 4], ecx
lea ecx, [esi + 0x290]
mov dword [eax], ecx
call fcn.00503ba0
jmp 0x4ec9a3
mov ecx, dword [esi + 0x108]
mov eax, dword [esi + 0x10c]
mov dword [esi + 0x380], ecx
mov dword [esi + 0x384], eax
mov dword [esi + 0x228], ecx
mov dword [esi + 0x22c], eax
mov ecx, dword [esi + 0x228]
mov eax, dword [esi + 0x22c]
mov dword [esi + 0xec], ecx
mov dword [esi + 0xf0], eax
mov dword [esi + 0xe8], 0
mov ecx, dword [esi + 0xec]
mov eax, dword [esi + 0xf0]
mov dword [esi + 0x120], ecx
mov dword [esi + 0x124], eax
mov ecx, dword [esi + 0x120]
mov eax, dword [esi + 0x124]
mov dword [esi + 0x388], ecx
mov dword [esi + 0x38c], eax
mov dword [esi + 0xc0], ecx
mov dword [esi + 0xc4], eax
jmp 0x4ece9b
movaps xmm0, xmmword [esi + 0x290]
movaps xmmword [esi + 0x2a0], xmm0
movaps xmmword [esi + 0x230], xmm0
lea eax, [esi + 0x230]
mov dword [esi + 0x2bc], eax
movaps xmmword [esi + 0x2c0], xmm0
mov eax, esp
lea ecx, [esi + 0x2c0]
mov dword [eax], ecx
call fcn.00503cb0
mov dword [esi + 0x34], eax
jmp 0x4ec9df
mov ecx, dword [esi + 0x38]
mov eax, dword [esi + 0x58]
mov edx, dword [esi + 0x34]
mov word [esi + 0x2d8], dx
xor dx, 0xffff
mov word [esi + 0x2da], dx
mov eax, dword [eax + 0xc]
mov word [esi + 0x154], dx
mov dword [esi + 0x14c], 0
mov dword [esi + 0x148], ecx
mov dword [esi + 0x150], eax
mov eax, dword [esi + 0x148]
mov dword [esi + 0x158], eax
mov eax, dword [esi + 0x14c]
mov dword [esi + 0x15c], eax
mov eax, dword [esi + 0x150]
mov dword [esi + 0x160], eax
mov eax, dword [esi + 0x154]
mov dword [esi + 0x164], eax
lea eax, [esi + 0x158]
mov dword [esi + 0x2dc], eax
cmp dword [esi + 0x160], 0
jne 0x4eca74
mov dword [esi + 0x168], 0
mov dword [esi + 0x16c], eax
jmp 0x4ecc51
lea eax, [esi + 0x158]
mov dword [esi + 0x3c8], eax
mov dword [esi + 0x3cc], 0x10
mov byte [esi + 0x3d3], 0
lea eax, [esi + 0x158]
add eax, 0xc
mov dword [esi + 0x3d4], eax
mov ax, word [esi + 0x164]
mov word [esi + 0x3d8], ax
mov word [esi + 0x3c6], ax
mov eax, 1
xor ecx, ecx
cmp word [esi + 0x3c6], 0
cmove eax, ecx
cmp eax, 1
je 0x4ecb8d
mov dword [esi + 0x3bc], 0
mov eax, dword [esi + 0x158]
mov dword [esi + 0x3ec], eax
mov dword [esi + 0x3f0], eax
add eax, 0x10
mov dword [esi + 0x3f4], eax
mov dword [esi + 0x158], eax
mov ecx, dword [esi + 0x158]
mov dword [esi + 0x3f8], ecx
mov dword [esi + 0x3fc], ecx
mov eax, esp
mov dword [eax + 4], ecx
lea ecx, [esi + 0x400]
mov dword [eax], ecx
call fcn.00503ba0
jmp 0x4ecb21
movaps xmm0, xmmword [esi + 0x400]
movaps xmmword [esi + 0x410], xmm0
movaps xmmword [esi + 0x3a0], xmm0
lea eax, [esi + 0x3a0]
mov dword [esi + 0x42c], eax
movaps xmmword [esi + 0x430], xmm0
mov eax, esp
lea ecx, [esi + 0x430]
mov dword [eax], ecx
call fcn.00503cb0
mov dword [esi + 0x30], eax
jmp 0x4ecb5d
mov eax, dword [esi + 0x30]
mov word [esi + 0x448], ax
xor ax, 0xffff
mov word [esi + 0x44a], ax
mov word [esi + 0x164], ax
mov eax, dword [esi + 0x15c]
add eax, 0x10
mov dword [esi + 0x15c], eax
jmp 0x4eca91
mov cx, word [esi + 0x3c6]
mov word [esi + 0x3da], cx
mov ax, cx
tzcnt eax, eax
movzx eax, ax
mov dword [esi + 0x3dc], eax
mov eax, dword [esi + 0x3dc]
mov dword [esi + 0x3c0], eax
mov dword [esi + 0x3bc], 1
mov eax, dword [esi + 0x3c0]
mov dword [esi + 0x3e0], eax
mov cx, word [esi + 0x164]
mov word [esi + 0x3e6], cx
mov dx, cx
sub dx, 1
and cx, dx
mov word [esi + 0x164], cx
mov dword [esi + 0x39c], eax
mov dword [esi + 0x398], 1
mov eax, dword [esi + 0x39c]
mov dword [esi + 0x3e8], eax
add eax, dword [esi + 0x15c]
mov dword [esi + 0x394], eax
mov dword [esi + 0x390], 1
mov ecx, dword [esi + 0x390]
mov eax, dword [esi + 0x394]
mov dword [esi + 0x2e0], ecx
mov dword [esi + 0x2e4], eax
mov edx, dword [esi + 0x160]
sub edx, 1
mov dword [esi + 0x160], edx
mov dword [esi + 0x168], ecx
mov dword [esi + 0x16c], eax
cmp dword [esi + 0x168], 0
jne 0x4ecd15
mov eax, dword [esi + 0x58]
mov ebx, dword [eax + 0xc]
lea ecx, [esi + 0xc8]
mov dword [esi + 0x2e8], ecx
lea edx, [esi + 0xd4]
mov edi, dword [esi + 0xdc]
sub edi, ebx
mov dword [esi + 0xdc], edi
mov edi, dword [eax + 0xc]
mov dword [esi + 0x2ec], ecx
mov dword [esi + 0xe0], edi
mov dword [esi + 0x2f0], ecx
mov dword [esi + 0x2f4], edx
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [esi + 0x300], xmm1
movsd qword [esi + 0x2f8], xmm0
movsd xmm0, qword [esi + 0xd4]
movsd xmm1, qword [esi + 0xdc]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
movsd xmm0, qword [esi + 0x2f8]
movsd xmm1, qword [esi + 0x300]
movsd qword [esi + 0xdc], xmm1
movsd qword [esi + 0xd4], xmm0
mov dword [esi + 0xc0], 0x80000001
mov dword [esi + 0x458], 0
mov eax, esp
mov dword [eax], ecx
call fcn.0052bde0
jmp 0x4ecd10
jmp 0x4ece9b
mov ecx, dword [esi + 0x58]
mov edx, dword [esi + 0x16c]
mov dword [esi + 0x24], edx
mov dword [esi + 0x30c], edx
mov eax, esp
mov dword [eax + 8], edx
mov dword [eax + 4], ecx
lea ecx, [esi + 0x68]
mov dword [eax], ecx
call fcn.004ee760
mov dword [esi + 0x28], edx
mov dword [esi + 0x2c], eax
jmp 0x4ecd41
mov edx, dword [esi + 0x2c]
mov edi, dword [esi + 0x28]
mov dword [esi + 0x310], edx
mov dword [esi + 0x314], edi
lea eax, [esi + 0xc8]
mov dword [esi + 0x318], eax
lea ecx, [esi + 0xd4]
mov dword [esi + 0x31c], ecx
mov eax, esp
mov dword [eax + 8], edi
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.004eac10
mov dword [esi + 0x20], eax
jmp 0x4ecd7f
mov edx, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
mov edi, dword [esi + 0x28]
mov ebx, dword [esi + 0x2c]
mov dword [esi + 0x320], edx
mov eax, dword [esi + 0xd4]
mov dword [esi + 0x324], eax
mov dword [esi + 0x328], eax
mov al, byte [eax + edx]
mov byte [esi + 0x32f], al
mov eax, edi
shld eax, ebx, 7
shr edi, 0x19
mov dword [esi + 0x334], edi
mov dword [esi + 0x330], eax
and al, 0x7f
mov byte [esi + 0x33f], al
mov ebx, edx
sub ebx, 0x10
and ebx, dword [esi + 0xd8]
mov edi, ebx
add edi, 0x10
mov dword [esi + 0x340], edi
mov edi, dword [esi + 0xd4]
mov dword [esi + 0x344], edi
mov dword [esi + 0x348], edi
mov byte [edi + edx], al
mov edi, dword [esi + 0xd4]
mov dword [esi + 0x34c], edi
mov dword [esi + 0x350], edi
mov byte [edi + ebx + 0x10], al
mov eax, dword [esi + 0x58]
mov dword [esi + 0x354], 0x60
mov eax, dword [eax]
mov dword [esi + 0x358], eax
mov dword [esi + 0x35c], eax
add ecx, 1
imul edi, ecx, 0x60
mov dword [esi + 0x360], edi
xor ecx, ecx
sub ecx, edi
add eax, ecx
mov dword [esi + 0x364], eax
lea ecx, [esi + 0xc8]
mov dword [esi + 0x368], ecx
lea ecx, [esi + 0xc8]
add ecx, 0xc
mov dword [esi + 0x36c], ecx
mov ecx, dword [esi + 0xd4]
mov dword [esi + 0x370], ecx
mov dword [esi + 0x374], ecx
add edx, 1
imul edi, edx, 0x60
mov dword [esi + 0x378], edi
xor edx, edx
sub edx, edi
add ecx, edx
mov dword [esi + 0x37c], ecx
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0x60
call sub.VCRUNTIME140.dll_memcpy
jmp 0x4eca4a
mov ecx, dword [esi + 0xc0]
mov eax, dword [esi + 0xc4]
mov dword [esi + 0x74], ecx
mov dword [esi + 0x78], eax
jmp 0x4eceeb
mov ecx, dword [esi + 0x58]
mov edx, dword [esi + 0x60]
mov dword [esi + 0x458], 0
mov eax, esp
mov dword [eax + 0x10], edx
lea edx, [esi + 0x68]
mov dword [eax + 4], edx
mov dword [eax], ecx
mov dword [eax + 0xc], 0x60
mov dword [eax + 8], 0x601d98
call fcn.004ea3a0
jmp 0x4ecee1
mov dword [esi + 0x74], 0x80000001
mov dword [esi + 0x78], eax
jmp 0x4eceed
mov eax, dword [esi + 0x74]
mov edx, dword [esi + 0x78]
mov ecx, dword [esi + 0x450]
mov dword fs:[0], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret