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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x4c0
mov esi, esp
mov dword [esi + 0x24], edx
mov edi, ecx
mov eax, dword [0x5f3418]
xor eax, ebp
mov dword [esi + 0x4b8], eax
mov eax, dword [ecx + 0x78]
mov dword [esi + 0x2c], eax
mov eax, dword [eax + 8]
mov dword [esi + 0x40], eax
lea ebx, [esi + 0xd0]
push 0x3a0
push 0xff
push ebx
call fcn.005191b0
mov edx, ebx
add esp, 0xc
lea eax, [esi + 0x450]
mov dword [esi + 0x458], ebx
mov dword [esi + 0x468], ebx
mov byte [esi + 0x450], 1
mov dword [esi + 0x45c], ebx
mov dword [esi + 0x460], ebx
mov dword [esi + 0x464], eax
mov ebx, dword [edi + 0x84]
cmp ebx, dword [edi + 0x88]
mov dword [esi + 0x14], edi
je 0x4e0ac8
lea eax, [edi + 0x80]
mov dword [esi + 8], eax
mov edi, dword [ebx]
test edi, edi
je 0x4e14dc
mov ecx, dword [edi + 0xc]
cmp ecx, 0x50e9b0
je 0x4e05de
call dword [section..00cfg]
push 0
push edi
call ecx
add esp, 8
test al, al
jne 0x4e09c3
cmp dword [ebx + 0x30], 1
je 0x4e14df
mov edx, dword [ebx + 0x20]
mov edi, dword [ebx + 0x24]
mov eax, dword [esi + 0x24]
cmp byte [eax], 0
je 0x4e08bc
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
cmp ecx, edx
sbb eax, edi
jl 0x4e0ab1
xor ebx, ebx
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0xc0], xmm0
movdqa xmmword [esi + 0xb0], xmm0
movdqa xmmword [esi + 0xa0], xmm0
movdqa xmmword [esi + 0x90], xmm0
movdqa xmmword [esi + 0x80], xmm0
movdqa xmmword [esi + 0x70], xmm0
movdqa xmmword [esi + 0x60], xmm0
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx + 0x84]
cmp eax, dword [ecx + 0x88]
je 0x4e1548
cmp byte [eax + 0x59], 0
je 0x4e0666
mov eax, dword [esi + 0x14]
dec dword [eax + 0x90]
mov ecx, dword [esi + 8]
lea edi, [esi + 0x60]
mov edx, edi
call fcn.004e19a0
test bl, bl
jne 0x4e09ca
mov eax, dword [ebp + 8]
mov dword [esi + 0xc0], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 0xc4], eax
mov ecx, dword [esi + 0x14]
mov edx, edi
call fcn.004e1910
mov dword [esi + 0x10], esp
sub esp, 0x70
mov edi, esp
mov dword [esi + 0x18], esp
mov eax, dword [esi + 0x60]
mov dword [esi + 0x44], eax
mov dword [esi + 0x60], 0
lea ecx, [esi + 0x64]
movups xmm0, xmmword [ecx]
movups xmmword [edi + 4], xmm0
movups xmm0, xmmword [ecx + 0x3d]
movups xmmword [edi + 0x41], xmm0
movups xmm0, xmmword [ecx + 0x34]
movups xmmword [edi + 0x38], xmm0
movups xmm0, xmmword [ecx + 0x14]
movups xmm1, xmmword [ecx + 0x24]
movups xmmword [edi + 0x28], xmm1
movups xmmword [edi + 0x18], xmm0
movzx eax, word [ecx + 0x54]
mov word [edi + 0x58], ax
movzx eax, byte [ecx + 0x56]
mov byte [edi + 0x5a], al
mov eax, dword [esi + 0xbc]
mov dword [esi + 0x1c], eax
mov dword [esi + 0xbc], 0
mov eax, dword [esi + 0xc0]
mov dword [esi + 0x20], eax
mov dword [edi + 0x60], eax
mov eax, dword [esi + 0xc4]
mov dword [esi + 0x28], eax
mov dword [edi + 0x64], eax
mov eax, dword [esi + 0xc8]
mov dword [esi + 0x30], eax
mov dword [esi + 0xc8], 0
mov eax, dword [esi + 0xcc]
mov dword [esi + 0x34], eax
mov dword [edi + 0x6c], eax
mov dword [edi], 0
movzx eax, word [edi + 0x58]
mov word [esi + 0x4c], ax
movzx eax, byte [edi + 0x5a]
mov byte [esi + 0x4e], al
movups xmm0, xmmword [edi + 4]
movaps xmmword [esi + 0x50], xmm0
movups xmm0, xmmword [edi + 0x41]
movups xmmword [esi + 0x499], xmm0
movups xmm0, xmmword [edi + 0x38]
movaps xmmword [esi + 0x490], xmm0
movups xmm0, xmmword [edi + 0x18]
movups xmm1, xmmword [edi + 0x28]
movaps xmmword [esi + 0x480], xmm1
movaps xmmword [esi + 0x470], xmm0
mov dword [edi + 0x5c], 0
mov dword [edi + 0x68], 0
mov eax, dword [esi + 0x2c]
cmp dword [eax], 0
mov dword [esi + 0xc], edi
je 0x4e12e9
mov ecx, dword [eax + 4]
mov edi, dword [ecx]
mov eax, dword [ecx + 8]
inc eax
cmp eax, edi
mov edx, eax
mov ebx, 0
cmove edx, ebx
cmp dword [ecx + 4], edx
mov edx, ecx
mov ecx, edi
mov edi, dword [esi + 0xc]
je 0x4e1241
cmp eax, ecx
cmove eax, ebx
mov dword [edx + 8], eax
mov ecx, dword [edx + 0xc]
imul eax, eax, 0x70
mov edx, dword [esi + 0x44]
mov dword [ecx + eax], edx
movaps xmm0, xmmword [esi + 0x50]
movups xmmword [ecx + eax + 4], xmm0
movaps xmm0, xmmword [esi + 0x470]
movaps xmm1, xmmword [esi + 0x480]
movups xmmword [ecx + eax + 0x18], xmm0
movups xmmword [ecx + eax + 0x28], xmm1
movaps xmm0, xmmword [esi + 0x490]
movups xmmword [ecx + eax + 0x38], xmm0
movdqu xmm0, xmmword [esi + 0x499]
movdqu xmmword [ecx + eax + 0x41], xmm0
movzx edx, word [esi + 0x4c]
mov word [ecx + eax + 0x58], dx
movzx edx, byte [esi + 0x4e]
mov byte [ecx + eax + 0x5a], dl
mov edx, dword [esi + 0x1c]
mov dword [ecx + eax + 0x5c], edx
mov edx, dword [esi + 0x20]
mov dword [ecx + eax + 0x60], edx
mov edx, dword [esi + 0x28]
mov dword [ecx + eax + 0x64], edx
mov edx, dword [esi + 0x30]
mov dword [ecx + eax + 0x68], edx
mov edx, dword [esi + 0x34]
mov dword [ecx + eax + 0x6c], edx
mov edx, dword [esi + 0x2c]
mov eax, dword [edx + 8]
inc eax
mov dword [edx + 8], eax
mov ecx, dword [edx + 0xc]
cmp ecx, eax
cmova eax, ecx
mov dword [edx + 0xc], eax
mov esp, dword [esi + 0x18]
mov eax, dword [edi + 0x68]
test eax, eax
jne 0x4e0a9a
mov ebx, dword [edi + 0x5c]
test ebx, ebx
jne 0x4e0a8b
mov edi, dword [edi]
test edi, edi
jne 0x4e0eb2
mov esp, dword [esi + 0x10]
mov eax, dword [esi + 0xc8]
test eax, eax
jne 0x4e0a6f
mov ebx, dword [esi + 0xbc]
test ebx, ebx
jne 0x4e0a60
mov edi, dword [esi + 0x60]
test edi, edi
jne 0x4e0a7d
mov eax, dword [esi + 0x14]
mov ebx, dword [eax + 0x84]
cmp ebx, dword [eax + 0x88]
jne 0x4e05b3
jmp 0x4e0ab1
mov dword [esi + 0xc], edi
mov ebx, dword [eax + 0x18]
mov eax, dword [ebx]
mov edi, dword [eax + 4]
cmp edi, 0x4e9900
mov dword [esi + 0x10], edx
jne 0x4e0e9a
mov ecx, dword [fcn.00509260]
cmp ecx, 0x50efc0
jne 0x4e0ecf
xor eax, eax
mov dword [esi + 0x64], eax
mov dword [esi + 0x60], eax
lea eax, [esi + 0x60]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edx, dword [esi + 0x60]
mov ebx, dword [esi + 0x64]
mov eax, 0x7bd05af6
cmp eax, edx
mov eax, 0x863
sbb eax, ebx
jge 0x4e1584
mov eax, dword [0x6c02b0]
mov dword [esi + 0x18], eax
mov edi, dword [0x6c02b4]
push edi
mov dword [esi + 0x1c], edi
push eax
push ebx
push edx
mov dword [esi + 0x28], edx
call fcn.00517110
mov dword [esi + 0x20], ebx
mov ebx, edx
mov dword [esi + 0x30], eax
mov ecx, eax
imul ecx, edi
mov edi, dword [esi + 0x18]
mul edi
add edx, ecx
imul ecx, ebx, 0xf4240
mov dword [esi + 0x34], ecx
imul ebx, edi
add ebx, edx
mov ecx, dword [esi + 0x28]
sub ecx, eax
mov edi, dword [esi + 0x20]
sbb edi, ebx
mov eax, dword [esi + 0x30]
mov ebx, 0xf4240
mul ebx
mov dword [esi + 0x20], eax
add edx, dword [esi + 0x34]
mov dword [esi + 0x28], edx
mov eax, ecx
mul ebx
imul ecx, edi, 0xf4240
add edx, ecx
push dword [esi + 0x1c]
push dword [esi + 0x18]
push edx
push eax
call fcn.00517110
add eax, dword [esi + 0x20]
adc edx, dword [esi + 0x28]
mov dword [esi + 0x470], eax
mov dword [esi + 0x474], edx
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 0x24]
cmp byte [edx], 0
mov ecx, dword [esi + 0x470]
mov eax, dword [esi + 0x474]
mov dword [edx + 8], ecx
mov dword [edx + 0xc], eax
jne 0x4e09bb
mov byte [edx], 1
mov edx, dword [esi + 0x10]
jmp 0x4e0600
mov bl, 1
jmp 0x4e060c
mov eax, dword [esi + 0x460]
cmp eax, dword [esi + 0x464]
jae 0x4e13a0
mov ecx, dword [esi + 0x60]
mov dword [eax], ecx
xor edi, edi
mov dword [esi + 0x60], edi
lea edx, [esi + 0x64]
movups xmm0, xmmword [edx]
movups xmmword [eax + 4], xmm0
movups xmm0, xmmword [edx + 0x3d]
movups xmmword [eax + 0x41], xmm0
movups xmm0, xmmword [edx + 0x34]
movups xmmword [eax + 0x38], xmm0
movups xmm0, xmmword [edx + 0x14]
movups xmm1, xmmword [edx + 0x24]
movups xmmword [eax + 0x28], xmm1
movups xmmword [eax + 0x18], xmm0
movzx ecx, word [edx + 0x54]
mov word [eax + 0x58], cx
mov cl, byte [edx + 0x56]
mov byte [eax + 0x5a], cl
mov ecx, dword [esi + 0xbc]
mov dword [eax + 0x5c], ecx
mov dword [esi + 0xbc], edi
movq xmm0, qword [esi + 0xc0]
movq qword [eax + 0x60], xmm0
mov ecx, dword [esi + 0xc8]
mov dword [eax + 0x68], ecx
mov dword [esi + 0xc8], edi
mov ecx, dword [esi + 0xcc]
mov dword [eax + 0x6c], ecx
add eax, 0x70
mov dword [esi + 0x460], eax
jmp 0x4e087b
lock dec dword [ebx + 4]
jne 0x4e0897
jmp 0x4e11f3
lock dec dword [eax]
jne 0x4e0889
jmp 0x4e11bf
lock dec dword [edi]
je 0x4e0ee6
jmp 0x4e08a2
lock dec dword [ebx + 4]
jne 0x4e086e
jmp 0x4e135b
lock dec dword [eax]
jne 0x4e0863
push eax
call fcn.0050fc7c
add esp, 4
jmp 0x4e0863
mov ebx, dword [esi + 0x45c]
mov edx, dword [esi + 0x460]
cmp edx, ebx
jne 0x4e17cd
mov edi, dword [esi + 0x14]
mov dword [esi + 0x460], edx
mov dword [esi + 0x53], 0xffffffff
mov dword [esi + 0x50], 0xffffffff
mov ebx, dword [edi + 0x84]
mov ecx, dword [edi + 0x88]
cmp ebx, ecx
je 0x4e0efa
cmp byte [edi + 0xb4], 0
je 0x4e0efa
mov dword [esi + 0xc], 0
cmp dword [edi + 0x90], 0
je 0x4e0b1f
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 0x7c]
xor edx, edx
cmp byte [eax + 0x20], 5
setb dl
mov dword [esi + 0xc], edx
mov eax, dword [ebx + 0x20]
mov dword [esi + 0x20], eax
mov edx, dword [ebx + 0x24]
mov eax, dword [ebx + 0x2c]
mov dword [esi + 0x10], eax
mov eax, dword [ebx + 0x28]
mov dword [esi + 0x18], eax
mov eax, dword [ebx + 0x30]
mov dword [esi + 0x1c], eax
mov al, 1
mov dword [esi + 8], eax
mov eax, dword [esi + 0x14]
mov edi, dword [eax + 0x74]
mov dword [esi + 0x30], 0xffffffff
test edi, edi
jne 0x4e0f88
mov dword [esi + 0x28], 0xffffffff
mov ecx, dword [esi + 0x14]
movzx ecx, byte [ecx + 0x118]
cmp byte [esi + 8], 0
je 0x4e0e7e
test cl, cl
je 0x4e0e7e
mov ebx, dword [esi + 0x14]
mov ecx, dword [ebx + 0x120]
xor ecx, dword [esi + 0x20]
mov edi, dword [ebx + 0x124]
xor edi, edx
or edi, ecx
jne 0x4e0bbf
mov ecx, dword [ebx + 0x128]
xor ecx, dword [esi + 0x18]
mov edi, dword [ebx + 0x12c]
xor edi, dword [esi + 0x10]
or edi, ecx
jne 0x4e0bbf
mov eax, dword [esi + 0xc]
cmp dword [ebx + 0x130], eax
jne 0x4e0bbf
mov eax, dword [esi + 0x1c]
cmp dword [ebx + 0x134], eax
je 0x4e0ca1
mov eax, dword [esi + 8]
mov byte [ebx + 0x118], al
mov eax, dword [esi + 0x50]
mov edi, dword [esi + 0x53]
mov dword [ebx + 0x119], eax
mov dword [ebx + 0x11c], edi
mov dword [ebx + 0x124], edx
mov dword [esi + 0x34], edx
mov edx, dword [esi + 0x20]
mov dword [ebx + 0x120], edx
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x12c], eax
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x128], eax
mov ecx, dword [esi + 0xc]
mov dword [ebx + 0x130], ecx
mov eax, dword [esi + 0x1c]
mov dword [ebx + 0x134], eax
mov ecx, dword [esi + 0x28]
mov dword [ebx + 0x13c], ecx
mov ecx, dword [esi + 0x30]
mov dword [ebx + 0x138], ecx
mov edi, dword [ebx + 0x70]
mov dword [esi + 0x14], edi
mov eax, dword [esi + 8]
mov byte [esi + 0x60], al
mov edi, dword [esi + 0x53]
mov dword [esi + 0x64], edi
mov edi, dword [esi + 0x50]
mov dword [esi + 0x61], edi
mov dword [esi + 0x68], edx
mov edx, dword [esi + 0x34]
mov dword [esi + 0x6c], edx
mov eax, dword [esi + 0x18]
mov dword [esi + 0x70], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x74], eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0x78], eax
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x7c], eax
mov dword [esi + 0x80], ecx
mov eax, dword [esi + 0x28]
mov dword [esi + 0x84], eax
sub esp, 0x30
movsd xmm0, qword [esi + 0x80]
movsd qword [esp + 0x28], xmm0
movdqu xmm0, xmmword [esi + 0x60]
movups xmm1, xmmword [esi + 0x70]
movups xmmword [esp + 0x18], xmm1
movdqu xmmword [esp + 8], xmm0
mov eax, dword [esi + 0x24]
mov dword [esp + 4], eax
mov dword [esp], ebx
mov ecx, dword [esi + 0x14]
call fcn.004e7990
mov ebx, dword [esi + 0x45c]
test ebx, ebx
je 0x4e0cde
mov edi, dword [esi + 0x460]
mov eax, ebx
cmp edi, ebx
jne 0x4e110f
mov dword [esi + 0x460], ebx
mov ecx, dword [esi + 0x468]
test ecx, ecx
je 0x4e1402
cmp ecx, eax
jne 0x4e1402
mov byte [eax + 0x380], 0
cmp dword [esi + 0x40], 0
mov edi, dword [esi + 0x2c]
jne 0x4e0e48
test edi, edi
je 0x4e0e48
cmp dword [edi + 8], 0
je 0x4e0e48
mov eax, dword [edi + 0x18]
mov dword [esi + 0x14], eax
test eax, eax
je 0x4e0e48
cmp byte [edi + 0x30], 0
jne 0x4e1128
mov eax, dword [edi]
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov edi, dword [eax + 0xc]
inc ecx
xor eax, eax
cmp ecx, edx
mov dword [esi + 0xc], 0
cmove ecx, eax
imul eax, ecx, 0x70
mov ecx, dword [edi + eax + 0x20]
mov ebx, dword [edi + eax + 0x24]
mov edx, ecx
or edx, ebx
mov dword [esi + 8], edi
mov dword [esi + 0x10], eax
mov edx, dword [edi + eax + 0x4c]
mov dword [esi + 0x18], edx
mov eax, 0
jne 0x4e0f2b
mov ecx, dword [esi + 0x2c]
mov edi, dword [ecx + 0x20]
cmp edi, 7
jae 0x4e1566
mov dword [esi + 0x24], edi
shl edi, 4
mov edx, dword [esi + 0x2c]
mov ebx, edx
shr ebx, 0xe
shr edx, 0x13
mov edx, dword [edx*4 + 0x6c24fc]
bt edx, ebx
mov ebx, dword [esi + 8]
mov ecx, dword [esi + 0x10]
mov edx, dword [ebx + ecx + 0x60]
mov ecx, dword [ebx + ecx + 0x64]
mov ebx, dword [esi + 0x14]
lea edi, [ebx + edi + 4]
mov ebx, dword [edi + 4]
mov dword [esi + 8], ebx
mov ebx, dword [edi + 8]
mov dword [esi + 0x10], ebx
mov dword [esi + 0xd4], ecx
mov dword [esi + 0xd0], edx
mov dword [esi + 0xdc], eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0xd8], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0xe0], eax
jb 0x4e0e5d
mov eax, dword [esi + 0x2c]
shr eax, 0x15
mov byte [eax + 0x6ca4fc], 1
lea ebx, [esi + 0xd0]
mov eax, dword [esi + 0x2c]
mov dword [ebx + 0x18], eax
lea eax, [esi + 0x60]
mov ecx, edi
push ebx
push eax
call fcn.004e3610
mov eax, dword [ebx + 0x18]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x6c24fc]
bt edx, ecx
jae 0x4e0e11
push eax
call fcn.004e3ba0
add esp, 4
mov eax, dword [esi + 0x10]
cmp dword [esi + 8], eax
mov edx, dword [esi + 0x24]
jne 0x4e0e48
mov eax, dword [esi + 0x14]
mov edi, dword [eax + 0x74]
mov eax, dword [edi]
mov ebx, dword [eax + 8]
cmp ebx, 0x50f490
jne 0x4e0e6d
mov eax, dword [edi + edx*4 + 8]
lea ecx, [eax + 1]
mov dword [edi + edx*4 + 8], ecx
test eax, eax
jne 0x4e0e48
xor eax, eax
inc eax
mov ecx, edx
shl eax, cl
or dword [edi + 0x24], eax
mov ecx, dword [esi + 0x4b8]
xor ecx, ebp
call fcn.00512ee3
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push dword [esi + 0x2c]
call fcn.004e3a80
add esp, 4
jmp 0x4e0dd7
mov ecx, ebx
call dword [section..00cfg]
mov ecx, edi
push dword [esi + 0x24]
call ebx
jmp 0x4e0e48
cmp byte [esi + 8], 0
setne ch
test cl, cl
setne cl
cmp ch, cl
mov ebx, dword [esi + 0x14]
je 0x4e0ca1
jmp 0x4e0bbf
mov ecx, edi
call dword [section..00cfg]
mov ecx, ebx
lea eax, [esi + 0x470]
push eax
call edi
jmp 0x4e099b
lock dec dword [edi]
jne 0x4e0878
mov ecx, dword [edi + 8]
call dword [section..00cfg]
push edi
call ecx
add esp, 4
jmp 0x4e0878
call dword [section..00cfg]
lea eax, [esi + 0x470]
push eax
call ecx
add esp, 4
jmp 0x4e099b
mov ecx, dword [edi + 8]
call dword [section..00cfg]
push edi
call ecx
add esp, 4
jmp 0x4e08a2
mov dword [esi + 8], 0
mov dword [esi + 0x20], 0
xor edx, edx
mov dword [esi + 0x18], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x1c], 0
jmp 0x4e0b3f
mov dword [esi + 0x24], ebx
mov eax, dword [esi + 8]
mov edx, dword [esi + 0x10]
add edx, eax
cmp dword [edx + 0x30], 0
jne 0x4e11d4
mov edi, dword [edx + 0x28]
mov eax, dword [edx + 0x2c]
mov ebx, edi
add ebx, 1
mov edx, eax
adc edx, 0x80000000
cmp ebx, 2
sbb edx, 0
mov ebx, ecx
jb 0x4e15ad
add ebx, edi
mov edi, dword [esi + 0x24]
adc edi, eax
seto cl
mov edx, edi
sar edx, 0x1f
test cl, cl
lea eax, [edx - 0x80000000]
cmove edx, ebx
mov dword [esi + 0xc], edx
test cl, cl
cmove eax, edi
jmp 0x4e0d55
mov dword [esi + 0x34], edx
mov edx, dword [esi + 0x14]
cmp byte [edx + 0xb4], 0
je 0x4e15e2
mov eax, dword [edx + 0x78]
cmp dword [eax + 8], 0
jne 0x4e11cd
mov eax, dword [edx + 0x7c]
cmp dword [eax + 8], 0
jne 0x4e11cd
cmp ebx, ecx
je 0x4e0ff2
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x2b8]
mov dword [esi + 0x28], eax
mov eax, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esi + 0x30], ecx
call dword [section..00cfg]
lea eax, [esi + 0x60]
mov ecx, dword [esi + 0x28]
push eax
call dword [esi + 0x30]
lea ecx, [esi + 0x60]
mov eax, dword [ecx]
cmp eax, dword [ebx + 0x20]
mov eax, dword [ecx + 4]
sbb eax, dword [ebx + 0x24]
mov bl, 1
jge 0x4e101a
mov ebx, dword [esi + 0x14]
lea eax, [ebx + 0x10]
mov dword [esi + 0x28], eax
push eax
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x4e15f3
cmp dword [ebx + 0x20], 0
setne bl
push dword [esi + 0x28]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esi + 8]
mov byte [esi + 0x470], al
mov eax, dword [esi + 0x50]
mov dword [esi + 0x471], eax
mov eax, dword [esi + 0x53]
mov dword [esi + 0x474], eax
mov eax, dword [esi + 0x20]
mov dword [esi + 0x478], eax
mov eax, dword [esi + 0x34]
mov dword [esi + 0x47c], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x480], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x484], eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0x488], eax
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x48c], eax
xor eax, eax
dec eax
mov dword [esi + 0x494], eax
mov dword [esi + 0x490], eax
mov eax, dword [edi]
mov ecx, dword [eax + 8]
mov dword [esi + 8], ecx
call dword [section..00cfg]
sub esp, 0x34
movsd xmm0, qword [esi + 0x490]
movsd qword [esp + 0x28], xmm0
movdqu xmm0, xmmword [esi + 0x470]
movups xmm1, xmmword [esi + 0x480]
movups xmmword [esp + 0x18], xmm1
movdqu xmmword [esp + 8], xmm0
movzx eax, bl
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x24]
mov dword [esp + 4], eax
lea ebx, [esi + 0x60]
mov dword [esp], ebx
mov ecx, edi
call dword [esi + 8]
mov al, byte [ebx]
mov dword [esi + 8], eax
mov eax, dword [ebx + 1]
mov dword [esi + 0x50], eax
mov eax, dword [ebx + 4]
mov dword [esi + 0x53], eax
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
mov dword [esi + 0x20], eax
mov eax, dword [ebx + 0x14]
mov dword [esi + 0x10], eax
mov eax, dword [ebx + 0x24]
mov dword [esi + 0x28], eax
mov eax, dword [ebx + 0x20]
mov dword [esi + 0x30], eax
mov eax, dword [ebx + 0x10]
mov dword [esi + 0x18], eax
mov eax, dword [ebx + 0x18]
mov dword [esi + 0xc], eax
mov eax, dword [ebx + 0x1c]
mov dword [esi + 0x1c], eax
jmp 0x4e0b5b
add edi, 0xffffff90
mov ecx, edi
call fcn.004e2350
cmp edi, ebx
jne 0x4e110f
mov eax, dword [esi + 0x45c]
jmp 0x4e0cbb
mov eax, dword [edi]
mov ecx, dword [eax + 4]
inc ecx
xor edx, edx
cmp ecx, dword [eax]
cmovne edx, ecx
imul ecx, edx, 0x70
add ecx, dword [eax + 0xc]
lea eax, [esi + 0xd0]
push eax
call fcn.004ffb40
cmp byte [edi + 0x30], 0
je 0x4e11bd
mov eax, dword [esi + 0xd0]
mov edx, dword [esi + 0xd4]
mov ebx, dword [edi + 0x3c]
mov dword [esi + 8], edx
mov dword [esi + 0x24], ebx
xor edx, ebx
mov ecx, dword [edi + 0x38]
mov dword [esi + 0x14], eax
mov dword [esi + 0xc], ecx
xor eax, ecx
or eax, edx
jne 0x4e11df
mov ecx, dword [esi + 0xd8]
mov eax, dword [esi + 0xdc]
mov edx, dword [edi + 0x44]
mov dword [esi + 0x14], eax
xor eax, edx
mov ebx, dword [edi + 0x40]
mov dword [esi + 8], ecx
xor ecx, ebx
or ecx, eax
jne 0x4e1410
mov eax, dword [esi + 0xe0]
cmp eax, dword [edi + 0x48]
jge 0x4e0e48
cmp dword [edi + 8], 0
jne 0x4e1600
mov eax, dword [esi + 0x2c]
cmp dword [eax + 0x20], 7
jae 0x4e1566
ud2
push eax
call fcn.0050fc7c
add esp, 4
jmp 0x4e0889
mov bl, 1
jmp 0x4e101a
mov dword [esi + 0xc], ecx
mov eax, dword [esi + 0x24]
jmp 0x4e0d55
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0xc]
mov eax, dword [esi + 8]
sbb eax, dword [esi + 0x24]
jae 0x4e0e48
jmp 0x4e11a6
mov eax, dword [ebx]
mov edi, dword [eax + 8]
cmp edi, 0x50b580
jne 0x4e13b4
mov edi, dword [eax + 4]
cmp edi, 0x501670
jne 0x4e13d8
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x4e1223
lock dec dword [eax]
je 0x4e14c0
mov edi, dword [ebx + 8]
test edi, edi
je 0x4e1233
lock dec dword [edi]
je 0x4e1443
push ebx
call fcn.0050fc7c
add esp, 4
jmp 0x4e0897
mov ebx, dword [esi + 0x2c]
mov eax, dword [ebx + 8]
lea ecx, [esi + 0x48]
mov dword [ecx], eax
push ecx
call fcn.004ee170
add esp, 4
mov eax, dword [ebx + 4]
mov eax, dword [eax]
mov ecx, eax
shr ecx, 1
add eax, ecx
add eax, 2
mov dword [esi + 0x38], eax
push 0x14
call fcn.00510d64
add esp, 4
mov ebx, eax
mov ecx, dword [esi + 0x38]
mov dword [eax], ecx
xor eax, eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
imul eax, ecx, 0x70
push eax
call fcn.00510d94
add esp, 4
mov edx, eax
shr edx, 0xe
mov ecx, eax
shr ecx, 0x13
mov ecx, dword [ecx*4 + 0x6c24fc]
bt ecx, edx
jb 0x4e1421
mov ecx, eax
shr ecx, 0x15
mov byte [ecx + 0x6ca4fc], 1
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], 0
mov eax, dword [esi + 0x2c]
mov edx, eax
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0x10]
mov dword [eax + 0x10], ebx
test ecx, ecx
jne 0x4e16aa
mov ecx, edx
mov eax, dword [edx + 4]
mov edx, dword [eax + 0x10]
mov dword [ecx + 4], edx
mov ecx, dword [edx]
mov eax, dword [edx + 8]
inc eax
xor ebx, ebx
jmp 0x4e07bd
push 0x14
call fcn.00510d64
add esp, 4
mov dword [eax], 4
xor ecx, ecx
mov dword [eax + 4], ecx
mov dword [esi + 0x38], eax
mov dword [eax + 8], ecx
push 0x1c0
call fcn.00510d94
add esp, 4
mov edx, eax
shr edx, 0xe
mov ecx, eax
shr ecx, 0x13
mov ecx, dword [ecx*4 + 0x6c24fc]
mov ebx, eax
bt ecx, edx
jb 0x4e1435
shr eax, 0x15
mov byte [eax + 0x6ca4fc], 1
mov ecx, dword [esi + 0x38]
mov dword [ecx + 0xc], ebx
mov dword [ecx + 0x10], 0
mov ebx, dword [esi + 0x2c]
mov eax, dword [ebx]
mov dword [ebx], ecx
test eax, eax
jne 0x4e16c2
mov dword [ebx + 4], ecx
jmp 0x4e079b
mov eax, dword [ebx]
mov ecx, dword [eax + 8]
cmp ecx, 0x50b580
jne 0x4e13c5
mov eax, dword [eax + 4]
cmp eax, 0x501670
jne 0x4e13eb
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x4e1382
lock dec dword [eax]
je 0x4e14ce
mov eax, dword [ebx + 8]
test eax, eax
je 0x4e1392
lock dec dword [eax]
je 0x4e147d
push ebx
call fcn.0050fc7c
add esp, 4
jmp 0x4e086e
lea ecx, [esi + 0x45c]
lea eax, [esi + 0x60]
push eax
call fcn.004e2ff0
jmp 0x4e087b
mov ecx, edi
call dword [section..00cfg]
mov ecx, ebx
call edi
jmp 0x4e0897
mov dword [esi + 0x18], ecx
call dword [section..00cfg]
mov ecx, ebx
call dword [esi + 0x18]
jmp 0x4e086e
mov ecx, edi
call dword [section..00cfg]
mov ecx, ebx
push 1
call edi
jmp 0x4e0897
mov ecx, eax
mov dword [esi + 0x18], eax
call dword [section..00cfg]
mov ecx, ebx
push 1
call dword [esi + 0x18]
jmp 0x4e086e
push eax
call fcn.0050fc7c
add esp, 4
jmp 0x4e0cde
cmp dword [esi + 8], ebx
sbb dword [esi + 0x14], edx
jge 0x4e0e48
jmp 0x4e11a6
push eax
mov dword [esi + 0x38], eax
call fcn.004e3a80
mov eax, dword [esi + 0x38]
add esp, 4
jmp 0x4e12b1
push eax
call fcn.004e3a80
add esp, 4
jmp 0x4e1337
mov eax, dword [edi + 0x10]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x6c24fc]
bt edx, ecx
jb 0x4e1778
mov dword [edi + 0x10], 0
lea ecx, [edi + 4]
call fcn.0040dae0
push edi
call fcn.0050fc7c
add esp, 4
jmp 0x4e1233
mov dword [esi + 0x18], eax
mov eax, dword [eax + 0x10]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x6c24fc]
bt edx, ecx
jb 0x4e1786
mov edi, dword [esi + 0x18]
mov dword [edi + 0x10], 0
lea ecx, [edi + 4]
call fcn.0040dae0
push edi
call fcn.0050fc7c
add esp, 4
mov edi, dword [esi + 0xc]
jmp 0x4e1392
push eax
call fcn.0050fc7c
add esp, 4
jmp 0x4e1223
push eax
call fcn.0050fc7c
add esp, 4
jmp 0x4e1382
int3
mov ecx, dword [ebx + 0x2c]
mov edx, dword [ebx + 0x28]
mov eax, edx
add eax, 1
mov edi, ecx
adc ecx, 0x80000000
cmp eax, 2
sbb ecx, 0
mov ecx, dword [ebx + 0x20]
mov eax, dword [ebx + 0x24]
jae 0x4e1525
xor ecx, edx
xor eax, edi
or eax, ecx
je 0x4e1522
mov eax, 0x80000000
xor edx, edx
inc edx
sar edi, 0x1f
add edx, edi
adc edi, eax
add edx, 0xffffffff
adc edi, 0xffffffff
jmp 0x4e05ee
int3
sub ecx, edx
sbb eax, edi
seto dl
mov ebx, eax
sar ebx, 0x1f
test dl, dl
lea edi, [ebx - 0x80000000]
cmove ebx, ecx
test dl, dl
mov edx, ebx
cmove edi, eax
jmp 0x4e05ee
push str.front___called_on_an_empty_vector
push str._empty__
push 0x225
push str....._buildtools_third_partylibc_trunkinclude_vector
push str._s:_d:_assertion__s_failed:__s
call fcn.005495a0
push str.out_of_bounds_access_in_std::array_T__N_
push str.__n____Size
push 0xda
push str....._buildtools_third_partylibc_trunkinclude_array
push str._s:_d:_assertion__s_failed:__s
call fcn.005495a0
mov ecx, 0xf4240
mov eax, edx
mul ecx
imul ecx, ebx, 0xf4240
add ecx, edx
push dword [0x6c02b4]
push dword [0x6c02b0]
push ecx
push eax
call fcn.00517110
jmp 0x4e098f
mov dword [esi + 0xc], edi
mov edx, 0x80000000
xor edi, edi
inc edi
add ebx, edi
adc edx, dword [esi + 0x24]
mov dword [esi + 0x1c], 0
cmp edi, ebx
sbb dword [esi + 0x1c], edx
jb 0x4e0d55
xor ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x24]
xor edx, eax
or edx, ecx
je 0x4e0d55
int3
xor eax, eax
dec eax
mov dword [esi + 0x30], eax
mov dword [esi + 0x28], eax
mov edx, dword [esi + 0x34]
jmp 0x4e0b5b
mov ecx, dword [esi + 0x28]
call fcn.004f8930
jmp 0x4e100a
mov eax, dword [esi + 0x2c]
mov eax, dword [eax]
mov ebx, dword [eax + 0xc]
mov edx, dword [eax]
mov ecx, dword [eax + 4]
inc ecx
xor edi, edi
cmp ecx, edx
mov eax, ecx
mov dword [esi + 0x1c], 0
cmove eax, edi
imul eax, eax, 0x70
mov edi, dword [ebx + eax + 0x20]
mov dword [esi + 8], ebx
mov ebx, dword [ebx + eax + 0x24]
mov dword [esi + 0x10], ebx
mov dword [esi + 0x30], edi
or edi, dword [esi + 0x10]
mov edi, dword [esi + 0x2c]
mov edi, dword [edi + 0x18]
mov dword [esi + 0x14], edi
mov dword [esi + 0x18], eax
mov edi, dword [esi + 8]
mov edi, dword [edi + eax + 0x4c]
mov dword [esi + 0x28], edi
mov dword [esi + 0x20], 0
jne 0x4e16f5
mov edi, dword [esi + 8]
mov eax, dword [esi + 0x18]
mov ebx, dword [edi + eax + 0x60]
mov eax, dword [edi + eax + 0x64]
mov edi, eax
xor edi, dword [esi + 0x24]
mov dword [esi + 0x10], ebx
xor ebx, dword [esi + 0xc]
or ebx, edi
jne 0x4e16de
mov eax, dword [esi + 0x2c]
mov edi, dword [eax + 0x40]
mov eax, dword [eax + 0x44]
mov ebx, dword [esi + 0x20]
mov dword [esi + 0x24], eax
xor ebx, eax
mov eax, dword [esi + 0x1c]
xor eax, edi
or eax, ebx
jne 0x4e176a
mov eax, dword [esi + 0x2c]
mov edi, dword [esi + 0x28]
cmp edi, dword [eax + 0x48]
mov edi, dword [esi + 8]
jl 0x4e0d20
jmp 0x4e11b0
mov ebx, ecx
call fcn.00421dc0
push ebx
call fcn.0050fc7c
mov edx, dword [esi + 0x2c]
add esp, 4
jmp 0x4e12d1
mov ecx, eax
mov dword [esi + 0x3c], eax
call fcn.00421dc0
push dword [esi + 0x3c]
call fcn.0050fc7c
add esp, 4
mov ecx, dword [ebx]
jmp 0x4e1353
mov edi, dword [esi + 0x10]
cmp edi, dword [esi + 0xc]
sbb eax, dword [esi + 0x24]
mov edi, dword [esi + 8]
jb 0x4e0d20
jmp 0x4e11b0
mov edi, dword [esi + 8]
mov eax, dword [esi + 0x18]
lea ebx, [edi + eax]
cmp dword [ebx + 0x30], 0
jne 0x4e1759
mov edi, dword [ebx + 0x28]
mov ebx, dword [ebx + 0x2c]
mov dword [esi + 0x1c], edi
add edi, 1
mov dword [esi + 0x20], ebx
adc ebx, 0x80000000
cmp edi, 2
sbb ebx, 0
jb 0x4e1794
mov eax, dword [esi + 0x30]
add eax, dword [esi + 0x1c]
mov dword [esi + 0x30], eax
mov ebx, dword [esi + 0x10]
adc ebx, dword [esi + 0x20]
seto al
mov byte [esi + 0x10], al
mov edi, ebx
sar edi, 0x1f
test al, al
lea eax, [edi - 0x80000000]
cmove edi, dword [esi + 0x30]
mov dword [esi + 0x1c], edi
cmp byte [esi + 0x10], 0
cmove eax, ebx
mov dword [esi + 0x20], eax
jmp 0x4e1658
mov eax, dword [esi + 0x30]
mov dword [esi + 0x1c], eax
mov edi, dword [esi + 0x10]
mov dword [esi + 0x20], edi
jmp 0x4e1658
cmp dword [esi + 0x1c], edi
mov eax, dword [esi + 0x24]
sbb dword [esi + 0x20], eax
jmp 0x4e169c
push eax
call fcn.004e3ba0
add esp, 4
jmp 0x4e1460
push eax
call fcn.004e3ba0
add esp, 4
jmp 0x4e149d
mov ebx, 0x80000000
xor eax, eax
inc eax
mov edi, dword [esi + 0x30]
add edi, eax
adc ebx, dword [esi + 0x10]
mov dword [esi + 0x34], 0
cmp eax, edi
sbb dword [esi + 0x34], ebx
jb 0x4e1658
mov edi, dword [esi + 0x30]
xor edi, dword [esi + 0x1c]
mov eax, dword [esi + 0x10]
xor eax, dword [esi + 0x20]
or eax, edi
je 0x4e1658
int3
mov eax, dword [edx - 8]
test eax, eax
jne 0x4e17f3
mov edi, dword [edx - 0x14]
test edi, edi
jne 0x4e17eb
mov edi, dword [edx - 0x70]
add edx, 0xffffff90
test edi, edi
jne 0x4e17fa
cmp edx, ebx
je 0x4e181a
jmp 0x4e17cd
lock dec dword [edi + 4]
jne 0x4e17db
jmp 0x4e1830
lock dec dword [eax]
jne 0x4e17d4
jmp 0x4e1821
lock dec dword [edi]
jne 0x4e17e5
mov dword [esi + 8], ebx
mov ebx, edx
mov ecx, dword [edi + 8]
call dword [section..00cfg]
push edi
call ecx
mov edx, ebx
mov ebx, dword [esi + 8]
add esp, 4
jmp 0x4e17e5
mov edx, ebx
jmp 0x4e0ac5
push eax
mov edi, edx
call fcn.0050fc7c
mov edx, edi
add esp, 4
jmp 0x4e17d4
mov eax, dword [edi]
mov ecx, dword [eax + 8]
cmp ecx, 0x50b580
mov dword [esi + 8], ebx
jne 0x4e1878
mov ecx, dword [eax + 4]
cmp ecx, 0x501670
jne 0x4e1894
mov ebx, edi
mov eax, dword [edi + 0xc]
test eax, eax
je 0x4e185d
lock dec dword [eax]
je 0x4e18e4
mov edi, edx
mov eax, dword [ebx + 8]
test eax, eax
je 0x4e186b
lock dec dword [eax]
je 0x4e18a9
push ebx
call fcn.0050fc7c
add esp, 4
mov edx, edi
jmp 0x4e188c
mov ebx, edi
mov dword [esi + 0xc], edx
mov edi, ecx
call dword [section..00cfg]
mov ecx, ebx
call edi
mov edx, dword [esi + 0xc]
mov ebx, dword [esi + 8]
jmp 0x4e17db
mov ebx, edi
mov dword [esi + 0xc], edx
mov edi, ecx
call dword [section..00cfg]
mov ecx, ebx
push 1
call edi
jmp 0x4e1889
mov dword [esi + 0xc], eax
mov eax, dword [eax + 0x10]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x6c24fc]
bt edx, ecx
jb 0x4e18f6
mov eax, dword [esi + 0xc]
mov dword [eax + 0x10], 0
lea ecx, [eax + 4]
call fcn.0040dae0
push dword [esi + 0xc]
call fcn.0050fc7c
add esp, 4
jmp 0x4e186b
push eax
mov edi, edx
call fcn.0050fc7c
mov edx, edi
add esp, 4
jmp 0x4e185d
push eax
call fcn.004e3ba0
add esp, 4
jmp 0x4e18c5