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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x270
movq xmm0, qword [edx]
mov edi, dword [edx + 8]
mov dword [esp + 0x2c], ecx
movsd xmm1, qword [0x56a2f0]
mov word [esp + 0x7c], 0
movq qword [esp + 0x1c8], xmm0
test edi, edi
movsd qword [esp + 0x68], xmm1
mov dword [esp + 0x70], 0xffffffff
mov dword [esp + 0x74], 0
mov dword [esp + 0x1d0], edi
mov byte [esp + 0x7e], 0
mov ecx, dword [esp + 0x1c8]
je 0x4e3ae5
js 0x4e4cc7
mov esi, dword [0x56bbf8]
mov eax, dword [esi]
test eax, eax
je 0x4e3aec
mov ebx, ecx
jmp 0x4e3afd
mov esi, 1
jmp 0x4e3b12
mov ebx, ecx
call sub.kernel32.dll_GetProcessHeap
test eax, eax
je 0x4e4cb7
mov dword [esi], eax
push edi
push 0
push eax
call sub.kernel32.dll_HeapAlloc
mov esi, eax
test eax, eax
mov ecx, ebx
je 0x4e4cb7
mov dword [esp + 0x30], ecx
lea ebx, [esp + 0x74]
push edi
push ecx
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
movsd xmm0, qword [ebx]
mov eax, dword [ebx + 8]
movzx edx, word [esp + 0xd8]
movzx ecx, byte [esp + 0xda]
cmp dword [esp + 0x1cc], 0
movsd qword [esp + 0x130], xmm0
mov dword [esp + 0x138], eax
mov word [esp + 0x168], dx
mov byte [esp + 0x16a], cl
je 0x4e3b77
mov eax, dword [0x56bbf8]
push dword [esp + 0x30]
push 0
push dword [eax]
call sub.kernel32.dll_HeapFree
mov eax, dword [esp + 0x138]
movsd xmm0, qword [esp + 0x130]
mov dword [esp + 0x1ec], eax
movzx eax, word [esp + 0x168]
movsd qword [esp + 0x1e4], xmm0
movsd xmm0, qword [0x56a2f0]
mov word [esp + 0x1fd], ax
movzx eax, byte [esp + 0x16a]
mov byte [esp + 0x1ff], al
mov eax, dword [esp + 0x2c]
movsd qword [esp + 0x1d8], xmm0
xorps xmm0, xmm0
mov dword [esp + 0x1e0], 0xffffffff
mov dword [esp + 0x1f0], esi
mov dword [esp + 0x1f4], edi
mov dword [esp + 0x1f8], edi
mov byte [esp + 0x1fc], 0
mov dword [esp + 0x200], 4
movlps qword [esp + 0x204], xmm0
mov dword [esp + 0x20c], 8
mov dword [esp + 0x214], 0
mov dword [esp + 0x210], 0
mov dword [esp + 0x21c], 0
mov dword [esp + 0x218], 0
mov dword [esp + 0x220], 8
movlps qword [esp + 0x224], xmm0
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1c8], 0
lea eax, [eax + 0x24]
mov dword [esp + 0x1a8], eax
lea eax, [esp + 0xe0]
mov dword [esp + 0x12c], eax
jmp 0x4e3c9c
lea ecx, [esp + 0x8c]
call fcn.004e2b80
lea eax, [esp + 0x1c8]
push eax
lea eax, [esp + 0x6c]
push eax
call fcn.004e7520
add esp, 8
mov ebx, dword [esp + 0x70]
mov eax, ebx
and al, 3
cmp al, 2
jne 0x4e3d30
cmp byte [esp + 0x98], 2
jne 0x4e3cf0
cmp byte [esp + 0x88], 2
je 0x4e3c90
cmp dword [esp + 0x80], 0
je 0x4e3c90
push dword [esp + 0x7c]
push 0
mov eax, dword [0x56bbf8]
push dword [eax]
call sub.kernel32.dll_HeapFree
jmp 0x4e3c90
cmp dword [esp + 0x80], 0
je 0x4e3d0c
push dword [esp + 0x7c]
push 0
mov eax, dword [0x56bbf8]
push dword [eax]
call sub.kernel32.dll_HeapFree
cmp dword [esp + 0x90], 0
je 0x4e3c9c
push dword [esp + 0x8c]
push 0
mov eax, dword [0x56bbf8]
push dword [eax]
call sub.kernel32.dll_HeapFree
jmp 0x4e3c9c
cmp ebx, 3
je 0x4e4c24
movdqu xmm0, xmmword [esp + 0xb4]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0x68]
movdqa xmmword [esp + 0x110], xmm0
pshufd xmm0, xmm0, 0xff
mov dword [esp + 0x20], eax
mov dword [esp + 0x50], ecx
shr ecx, 0x1d
movd esi, xmm0
mov eax, esi
and esi, 0x10
shr eax, 0xa
and ecx, eax
lea eax, [esp + 0x78]
movsd xmm2, qword [eax + 8]
movsd xmm1, qword [eax + 0x10]
movsd xmm0, qword [eax]
and ecx, 1
cmp cl, 1
movsd qword [esp + 0x238], xmm2
movsd qword [esp + 0x240], xmm1
movsd xmm2, qword [eax + 0x18]
movsd xmm1, qword [eax + 0x20]
movsd qword [esp + 0x230], xmm0
movsd qword [esp + 0x248], xmm2
movsd qword [esp + 0x250], xmm1
movsd xmm2, qword [eax + 0x28]
movsd xmm1, qword [eax + 0x30]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xb0]
movsd qword [esp + 0x258], xmm2
movsd qword [esp + 0x260], xmm1
mov dword [esp + 8], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xc8]
je 0x4e3f41
test esi, esi
je 0x4e3f41
pshufd xmm0, xmmword [esp + 0x110], 0x55
sub esp, 8
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x10]
movdqa xmmword [esp + 0x38], xmm0
movd dword [esp], xmm0
mov dword [esp + 4], 1
call fcn.004e5bf0
add esp, 8
test al, al
je 0x4e41e1
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 8]
mov eax, dword [edx + 0x30]
test eax, eax
je 0x4e4774
movdqa xmm0, xmmword [esp + 0x30]
mov esi, dword [esp + 0x1a8]
movd ecx, xmm0
mov dword [esp + 0x64], esi
push dword [edx + 0x38]
push eax
push ecx
push edi
lea eax, [esp + 0x140]
push eax
call fcn.004c8440
add esp, 0x14
movsd xmm1, qword [0x56a300]
mov edi, dword [esp + 0x130]
mov ebx, dword [esp + 0x134]
lea eax, [esp + 0x78]
pxor xmm0, xmm0
mov word [eax + 0x10], 0
mov dword [eax + 0xc], 0
movq qword [esp + 0x68], xmm0
movsd qword [esp + 0x74], xmm1
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov byte [esp + 0x89], 1
mov word [esp + 0x85], 0x101
mov edx, edi
lea eax, [esp + 0x68]
lea ecx, [esp + 0xd8]
push eax
push dword [esp + 0x13c]
call fcn.004ceae0
add esp, 8
cmp byte [esp + 0xd8], 4
mov ecx, dword [esp + 0x128]
jne 0x4e4414
mov esi, dword [esp + 0xdc]
and ecx, 0xffffff00
or ecx, 4
test ebx, ebx
mov dword [esp + 0x128], ecx
jne 0x4e442d
jmp 0x4e4443
pshufd xmm0, xmmword [esp + 0x110], 0x55
mov edi, ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0xd0], edx
sub esp, 8
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x10]
movdqa xmmword [esp + 0x38], xmm0
movd dword [esp], xmm0
mov dword [esp + 4], 0
call fcn.004e5bf0
add esp, 8
test al, al
je 0x4e4774
mov eax, esi
mov ecx, edi
shr eax, 4
and cl, al
jne 0x4e4774
movdqa xmm0, xmmword [esp + 0x30]
mov ecx, dword [esp + 8]
mov dword [esp + 0x68], 0x56a660
mov dword [esp + 0x6c], 2
mov dword [esp + 0x70], 0
movd eax, xmm0
mov dword [esp + 0x130], ecx
mov dword [esp + 0x134], eax
lea eax, [esp + 0x130]
mov dword [esp + 0xd8], eax
lea eax, [esp + 0xd8]
mov dword [esp + 0xdc], 0x4c84e0
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], 1
lea eax, [esp + 0x68]
push eax
call fcn.004c4f80
add esp, 4
movsd xmm0, qword [esp + 0x260]
mov eax, dword [esp + 0x2c]
movsd xmm1, qword [esp + 0x238]
movsd qword [esp + 0x160], xmm0
movsd xmm0, qword [esp + 0x258]
mov ecx, dword [eax + 0x3c]
movsd qword [esp + 0x138], xmm1
movsd qword [esp + 0x158], xmm0
movsd xmm0, qword [esp + 0x250]
lea eax, [ecx + 0xc]
mov dword [esp + 0x30], ecx
mov dword [esp + 0xc], eax
lea eax, [ecx + 0x14]
mov dword [esp + 0x1ac], eax
movsd qword [esp + 0x150], xmm0
movsd xmm0, qword [esp + 0x248]
movsd qword [esp + 0x148], xmm0
movsd xmm0, qword [esp + 0x240]
movsd qword [esp + 0x140], xmm0
movq xmm0, qword [esp + 0x230]
movq qword [esp + 0x130], xmm0
pxor xmm0, xmm0
movq qword [esp + 0x14], xmm0
nop word cs:[eax + eax]
push dword [esp + 0xc]
call sub.kernel32.dll_AcquireSRWLockExclusive
mov eax, dword [0x56bbfc]
mov eax, dword [eax]
test eax, 0x7fffffff
je 0x4e40f0
call fcn.004cc610
xor al, 1
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x30]
movzx eax, byte [ecx + 0x10]
test al, al
je 0x4e4108
jmp 0x4e4c84
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x30]
movzx eax, byte [ecx + 0x10]
test al, al
jne 0x4e4c84
cmp byte [ecx + 0x40], 0
jne 0x4e4200
mov eax, dword [ecx + 0x34]
cmp eax, dword [ecx + 0x2c]
jb 0x4e4200
call fcn.004c90b0
mov esi, eax
mov eax, dword [esp + 0x14]
mov edi, edx
test eax, eax
je 0x4e413d
lock dec dword [eax]
jne 0x4e413d
mov ecx, dword [esp + 0x14]
call fcn.004b1670
mov edx, dword [esp + 0x30]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], 0
lea ecx, [esp + 0x14]
mov eax, dword [edx + 0x18]
test eax, eax
lea eax, [eax + 4]
cmove eax, dword [esp + 0x1ac]
cmp byte [esp + 0x10], 0
mov dword [eax], ecx
mov dword [edx + 0x18], ecx
mov dword [esp + 0x1c], esi
je 0x4e41c0
push dword [esp + 0xc]
call sub.kernel32.dll_ReleaseSRWLockExclusive
mov dword [esp + 0x68], esi
nop
mov eax, dword [esp + 0x68]
movzx eax, byte [eax + 0xc]
test al, al
jne 0x4e41a0
call fcn.004c30b0
jmp 0x4e4180
mov eax, dword [esp + 0x68]
lock dec dword [eax]
jne 0x4e40b0
mov ecx, dword [esp + 0x68]
call fcn.004b1670
jmp 0x4e40b0
mov eax, dword [0x56bbfc]
mov eax, dword [eax]
test eax, 0x7fffffff
je 0x4e4171
call fcn.004cc610
test al, al
jne 0x4e4171
mov eax, dword [esp + 0x30]
mov byte [eax + 0x10], 1
jmp 0x4e4171
cmp dword [esp + 0x208], 0
je 0x4e4774
lea ecx, [esp + 0x1c8]
call fcn.004eb630
jmp 0x4e4774
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4e4216
lock dec dword [eax]
jne 0x4e4216
mov ecx, dword [esp + 0x14]
call fcn.004e32d0
mov esi, dword [esp + 0x30]
cmp byte [esi + 0x40], 0
je 0x4e42bb
movsd xmm2, qword [esp + 0x158]
movsd xmm1, qword [esp + 0x150]
movsd xmm0, qword [esp + 0x160]
cmp byte [esp + 0x10], 0
movsd qword [esp + 0x100], xmm2
movsd qword [esp + 0xf8], xmm1
movsd xmm2, qword [esp + 0x148]
movsd xmm1, qword [esp + 0x140]
movsd qword [esp + 0x108], xmm0
movsd qword [esp + 0xf0], xmm2
movsd qword [esp + 0xe8], xmm1
movsd xmm2, qword [esp + 0x130]
movsd xmm1, qword [esp + 0x138]
movsd qword [esp + 0xe0], xmm1
movsd qword [esp + 0xd8], xmm2
je 0x4e45a1
push dword [esp + 0xc]
call sub.kernel32.dll_ReleaseSRWLockExclusive
jmp 0x4e4a33
mov ecx, dword [esi + 0x2c]
test ecx, ecx
je 0x4e4c38
mov eax, dword [esi + 0x34]
lea edi, [esp + 0x68]
lea edx, [eax + 1]
mov dword [esi + 0x34], edx
xor edx, edx
add eax, dword [esi + 0x30]
div ecx
mov ecx, 0x1a
imul eax, edx, 0x68
mov edx, dword [esi + 0x24]
lea esi, [edx + eax]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0xd4]
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x28]
mov dword [edx + eax + 4], ecx
mov ecx, dword [esp + 0xd0]
mov dword [edx + eax], ecx
mov ecx, dword [esp + 0x20]
mov dword [edx + eax + 8], ebx
mov dword [edx + eax + 0xc], ecx
mov ecx, dword [esp + 8]
movsd xmm0, qword [esp + 0x130]
movsd xmm1, qword [esp + 0x138]
movsd qword [edx + eax + 0x10], xmm0
movsd qword [edx + eax + 0x18], xmm1
movsd xmm0, qword [esp + 0x140]
movsd qword [edx + eax + 0x20], xmm0
movsd xmm0, qword [esp + 0x148]
movsd qword [edx + eax + 0x28], xmm0
movsd xmm0, qword [esp + 0x150]
movsd qword [edx + eax + 0x30], xmm0
movsd xmm0, qword [esp + 0x158]
movsd qword [edx + eax + 0x38], xmm0
movsd xmm0, qword [esp + 0x160]
movsd qword [edx + eax + 0x40], xmm0
movdqa xmm0, xmmword [esp + 0x110]
mov dword [edx + eax + 0x48], ecx
movdqu xmmword [edx + eax + 0x4c], xmm0
mov dword [edx + eax + 0x5c], esi
mov esi, dword [esp + 0x4c]
mov dword [edx + eax + 0x60], edi
mov dword [edx + eax + 0x64], esi
mov eax, dword [esp + 0x70]
xor eax, 2
or eax, dword [esp + 0x74]
jne 0x4e4cd1
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x10]
mov eax, dword [ecx + 0x1c]
mov esi, dword [ecx + 0x20]
mov dword [ecx + 0x1c], 2
cmp eax, 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], esi
je 0x4e45cd
cmp eax, 2
jne 0x4e4cea
mov edi, dword [esp + 0x30]
cmp dword [edi + 0x38], 0
je 0x4e47fa
test bl, bl
je 0x4e4875
push dword [esp + 0xc]
call sub.kernel32.dll_ReleaseSRWLockExclusive
mov dword [esp + 0x20], 0
mov ebx, 2
jmp 0x4e4a03
mov ecx, dword [esp + 0xd8]
mov esi, dword [esp + 0xdc]
test ebx, ebx
mov dword [esp + 0x128], ecx
je 0x4e4443
push edi
push 0
mov eax, dword [0x56bbf8]
push dword [eax]
call sub.kernel32.dll_HeapFree
mov ecx, dword [esp + 0x128]
mov ebx, dword [esp + 0x1a4]
cmp cl, 4
jne 0x4e44e4
lea eax, [esp + 0x64]
mov dword [esp + 0x68], 0x56a660
mov dword [esp + 0x6c], 2
mov dword [esp + 0x1c], esi
mov dword [esp + 0x70], 0
mov dword [esp + 0x14], eax
lea eax, [esp + 0x1c]
mov dword [esp + 0x18], 0x4e2560
mov dword [esp + 0xd8], eax
lea eax, [esp + 0x14]
mov byte [esp + 0xdc], 4
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], 1
lea eax, [esp + 0x68]
push eax
push 0x56a394
lea eax, [esp + 0xe0]
push eax
call fcn.00415e60
add esp, 0xc
test al, al
je 0x4e4628
cmp byte [esp + 0xdc], 4
jne 0x4e468f
mov ebx, 0x56a3bc
mov dword [esp + 0x24], 2
jmp 0x4e46ac
lea eax, [esp + 0x168]
mov dword [esp + 0x168], ecx
mov dword [esp + 0x68], 0x56a650
mov dword [esp + 0x6c], 2
mov dword [esp + 0x16c], esi
mov dword [esp + 0x70], 0
mov dword [esp + 0xd8], eax
lea eax, [esp + 0xd8]
mov dword [esp + 0xdc], fcn.004c4830
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], 1
lea eax, [esp + 0x68]
push eax
call fcn.004c4f80
add esp, 4
cmp byte [esp + 0x168], 3
jne 0x4e4774
mov edi, dword [esp + 0x16c]
mov eax, dword [edi + 4]
mov eax, dword [eax]
push dword [edi]
call eax
add esp, 4
mov ecx, dword [edi + 4]
cmp dword [ecx + 4], 0
je 0x4e4587
mov eax, dword [edi]
cmp dword [ecx + 8], 9
jb 0x4e4578
mov eax, dword [eax - 4]
push eax
push 0
mov eax, dword [0x56bbf8]
push dword [eax]
call sub.kernel32.dll_HeapFree
push dword [esp + 0x16c]
push 0
mov eax, dword [0x56bbf8]
push dword [eax]
call sub.kernel32.dll_HeapFree
jmp 0x4e4774
mov eax, dword [0x56bbfc]
mov eax, dword [eax]
test eax, 0x7fffffff
je 0x4e42ad
call fcn.004cc610
test al, al
jne 0x4e42ad
mov eax, dword [esp + 0x30]
mov byte [eax + 0x10], 1
jmp 0x4e42ad
test bl, bl
mov dword [esp + 0x68], esi
je 0x4e47ce
push dword [esp + 0xc]
call sub.kernel32.dll_ReleaseSRWLockExclusive
lea eax, [esp + 0x68]
push eax
call fcn.004c9160
add esp, 4
lock dec dword [esi]
jne 0x4e45fd
mov ecx, dword [esp + 0x68]
call fcn.004e32d0
cmp dword [esp + 0x14], 0
mov ebx, 2
mov dword [esp + 0x20], 0
jne 0x4e4623
mov eax, dword [esp + 0x18]
lock dec dword [eax]
jne 0x4e4623
mov ecx, dword [esp + 0x18]
call fcn.004e32d0
jmp 0x4e4a03
mov eax, dword [esp + 0x24]
and eax, 0xffffff00
or eax, 4
cmp byte [esp + 0xdc], 3
mov dword [esp + 0x24], eax
jne 0x4e46a1
mov edi, dword [esp + 0xe0]
mov eax, dword [edi + 4]
mov eax, dword [eax]
push dword [edi]
call eax
add esp, 4
mov ecx, dword [edi + 4]
cmp dword [ecx + 4], 0
je 0x4e4678
mov eax, dword [edi]
cmp dword [ecx + 8], 9
jb 0x4e4669
mov eax, dword [eax - 4]
push eax
push 0
mov eax, dword [0x56bbf8]
push dword [eax]
call sub.kernel32.dll_HeapFree
push dword [esp + 0xe0]
push 0
mov eax, dword [0x56bbf8]
push dword [eax]
call sub.kernel32.dll_HeapFree
jmp 0x4e46a1
mov eax, dword [esp + 0xdc]
mov ebx, dword [esp + 0xe0]
mov dword [esp + 0x24], eax
cmp byte [esp + 0x24], 4
je 0x4e4764
mov eax, dword [esp + 0x24]
mov dword [esp + 0x68], 0x56a690
mov dword [esp + 0x6c], 2
mov dword [esp + 0x70], 0
mov dword [esp + 0x168], eax
lea eax, [esp + 0x168]
mov dword [esp + 0x16c], ebx
mov dword [esp + 0xd8], eax
lea eax, [esp + 0xd8]
mov dword [esp + 0xdc], fcn.004c4830
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], 1
lea eax, [esp + 0x68]
push eax
call fcn.004c4f80
add esp, 4
cmp byte [esp + 0x168], 3
jne 0x4e4764
mov edi, dword [esp + 0x16c]
mov eax, dword [edi + 4]
mov eax, dword [eax]
push dword [edi]
call eax
add esp, 4
mov ecx, dword [edi + 4]
cmp dword [ecx + 4], 0
je 0x4e474f
mov eax, dword [edi]
cmp dword [ecx + 8], 9
jb 0x4e4740
mov eax, dword [eax - 4]
push eax
push 0
mov eax, dword [0x56bbf8]
push dword [eax]
call sub.kernel32.dll_HeapFree
push dword [esp + 0x16c]
push 0
mov eax, dword [0x56bbf8]
push dword [eax]
call sub.kernel32.dll_HeapFree
mov dword [esp + 0x1a4], ebx
push dword [esp + 0x1c]
call sub.kernel32.dll_CloseHandle
movdqa xmm0, xmmword [esp + 0x110]
movd eax, xmm0
test eax, eax
je 0x4e4797
push dword [esp + 8]
push 0
mov eax, dword [0x56bbf8]
push dword [eax]
call sub.kernel32.dll_HeapFree
mov edi, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
mov ebx, dword [esp + 0x5c]
mov esi, dword [esp + 0x60]
movdqa xmm0, xmmword [esp + 0x1b0]
mov dword [esp + 0x58], edi
mov dword [esp + 0x54], eax
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], esi
movdqa xmmword [esp + 0x1b0], xmm0
jmp 0x4e3c9c
mov eax, dword [0x56bbfc]
mov eax, dword [eax]
test eax, 0x7fffffff
je 0x4e45d9
call fcn.004cc610
test al, al
jne 0x4e45d9
mov eax, dword [esp + 0x30]
mov byte [eax + 0x10], 1
jmp 0x4e45d9
mov byte [esp + 0x64], 0
cmp dword [edi + 0x3c], 0
jne 0x4e4d26
lea eax, [esp + 0x64]
mov dword [edi + 0x3c], eax
call fcn.004c90b0
mov dword [esp + 0x1c], eax
mov esi, eax
mov eax, dword [edi + 0x1c]
mov ecx, dword [edi + 0x20]
mov dword [edi + 0x1c], 0
mov dword [edi + 0x20], edx
cmp eax, 2
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
jne 0x4e4d3c
test bl, bl
je 0x4e48a1
push dword [esp + 0xc]
call sub.kernel32.dll_ReleaseSRWLockExclusive
push esi
call fcn.004c9240
add esp, 4
push dword [esp + 0xc]
call sub.kernel32.dll_AcquireSRWLockExclusive
mov eax, dword [0x56bbfc]
mov eax, dword [eax]
test eax, 0x7fffffff
je 0x4e48c5
call fcn.004cc610
mov ecx, eax
xor cl, 1
jmp 0x4e48c7
mov eax, dword [0x56bbfc]
mov eax, dword [eax]
test eax, 0x7fffffff
je 0x4e43f9
call fcn.004cc610
test al, al
jne 0x4e43f9
mov eax, dword [esp + 0x30]
mov byte [eax + 0x10], 1
jmp 0x4e43f9
mov eax, dword [0x56bbfc]
mov eax, dword [eax]
test eax, 0x7fffffff
je 0x4e4840
call fcn.004cc610
test al, al
jne 0x4e4840
mov eax, dword [esp + 0x30]
mov byte [eax + 0x10], 1
jmp 0x4e4840
xor ecx, ecx
mov eax, dword [esp + 0x30]
movzx eax, byte [eax + 0x10]
test al, al
jne 0x4e4d52
cmp byte [esp + 0x64], 0
je 0x4e49e5
mov edi, dword [esp + 0x30]
mov dword [esp + 0x10], ecx
mov esi, dword [edi + 0x2c]
mov ecx, dword [edi + 0x30]
dec dword [edi + 0x34]
test esi, esi
je 0x4e4c51
lea eax, [ecx + 1]
xor edx, edx
div esi
cmp ecx, esi
mov dword [edi + 0x30], edx
jae 0x4e4c70
mov eax, dword [edi + 0x24]
imul ecx, ecx, 0x68
mov ebx, dword [eax + ecx + 8]
mov esi, dword [eax + ecx + 0xc]
mov edx, ebx
mov dword [esp + 0x20], esi
xor edx, 2
or edx, esi
mov edx, dword [eax + ecx]
mov esi, dword [eax + ecx + 4]
mov dword [eax + ecx + 8], 2
mov dword [eax + ecx + 0xc], 0
mov dword [esp + 0xd0], edx
mov dword [esp + 0xd4], esi
je 0x4e4d7e
add eax, ecx
movsd xmm0, qword [eax + 0x40]
movsd qword [esp + 0x108], xmm0
movsd xmm0, qword [eax + 0x38]
movsd qword [esp + 0x100], xmm0
movsd xmm0, qword [eax + 0x30]
movsd qword [esp + 0xf8], xmm0
movsd xmm0, qword [eax + 0x28]
movsd qword [esp + 0xf0], xmm0
movsd xmm0, qword [eax + 0x20]
movsd qword [esp + 0xe8], xmm0
movsd xmm0, qword [eax + 0x10]
movsd xmm1, qword [eax + 0x18]
movsd qword [esp + 0xe0], xmm1
movsd qword [esp + 0xd8], xmm0
mov ecx, dword [eax + 0x48]
movdqu xmm0, xmmword [eax + 0x4c]
mov dword [esp + 0x60], ecx
mov ecx, dword [eax + 0x5c]
movdqa xmmword [esp + 0x1b0], xmm0
mov dword [esp + 0x58], ecx
mov ecx, dword [eax + 0x64]
mov eax, dword [eax + 0x60]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x54], eax
jmp 0x4e49f2
mov dword [esp + 0x20], 0
mov ebx, 2
test cl, cl
je 0x4e4bf8
push dword [esp + 0xc]
call sub.kernel32.dll_ReleaseSRWLockExclusive
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
movaps xmm0, xmmword [esp + 0x1b0]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], edx
movaps xmmword [esp + 0x110], xmm0
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x20]
mov eax, ebx
xor eax, 2
or eax, ecx
jne 0x4e4a5e
movdqa xmm0, xmmword [esp + 0x110]
mov esi, dword [esp + 8]
mov edi, dword [esp + 0x50]
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x4c]
jmp 0x4e47b0
mov eax, dword [esp + 0xd4]
movsd xmm0, qword [esp + 0x108]
movsd xmm1, qword [esp + 0xf8]
movsd xmm2, qword [esp + 0xf0]
movsd xmm3, qword [esp + 0xe8]
movsd xmm4, qword [esp + 0xd8]
movsd xmm5, qword [esp + 0xe0]
mov esi, dword [esp + 8]
mov edi, dword [esp + 0x50]
mov dword [esp + str.cant_send_entry_to_channel:], 0x56a6c0
mov dword [esp + 0x134], 2
mov dword [esp + 0x138], 0
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0xd0]
movsd qword [esp + 0x198], xmm0
movsd xmm0, qword [esp + 0x100]
movsd qword [esp + 0x188], xmm1
movsd qword [esp + 0x180], xmm2
movsd qword [esp + 0x178], xmm3
movsd qword [esp + 0x170], xmm5
movsd qword [esp + 0x168], xmm4
mov dword [esp + 0x68], eax
lea eax, [esp + 0x78]
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ecx
movsd qword [esp + 0x190], xmm0
mov ebx, dword [esp + 0x4c]
movsd qword [eax + 0x28], xmm0
movsd xmm0, qword [esp + 0x198]
movsd qword [eax + 0x20], xmm1
movsd qword [eax + 0x18], xmm2
movsd qword [eax + 0x10], xmm3
movsd qword [eax + 8], xmm5
movsd qword [eax], xmm4
movsd qword [eax + 0x30], xmm0
movdqa xmm0, xmmword [esp + 0x110]
mov eax, dword [esp + 0x28]
mov dword [esp + 0xb0], esi
movdqu xmmword [esp + 0xb4], xmm0
mov dword [esp + 0xc4], edi
mov dword [esp + 0xc8], eax
lea eax, [esp + 0x68]
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xd8], eax
lea eax, [esp + 0xd8]
mov dword [esp + 0xdc], 0x4e3380
mov dword [esp + 0x140], eax
mov dword [esp + 0x144], 1
lea eax, [esp + 0x130]
push eax
call fcn.004c4f80
add esp, 4
cmp dword [esp + 0xb4], 0
je 0x4e4be6
push dword [esp + 0xb0]
push 0
mov eax, dword [0x56bbf8]
push dword [eax]
call sub.kernel32.dll_HeapFree
movdqa xmm0, xmmword [esp + 0x110]
mov eax, dword [esp + 0x28]
jmp 0x4e47b0
mov eax, dword [0x56bbfc]
mov eax, dword [eax]
test eax, 0x7fffffff
je 0x4e49fa
call fcn.004cc610
test al, al
jne 0x4e49fa
mov eax, dword [esp + 0x30]
mov byte [eax + 0x10], 1
jmp 0x4e49fa
lea ecx, [esp + 0x1c8]
call fcn.004e29a0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x56a4b8
push 0x39
push str.attempt_to_calculate_the_remainder_with_a_divisor_of_zero
call fcn.00414ad0
add esp, 0xc
jmp 0x4e4d7c
mov eax, 0x56a41c
mov ecx, 0x39
mov edx, str.attempt_to_calculate_the_remainder_with_a_divisor_of_zero
push eax
push ecx
push edx
call fcn.00414ad0
add esp, 0xc
jmp 0x4e4d7c
push 0x56a46c
push esi
push ecx
call fcn.00414b90
add esp, 0xc
jmp 0x4e4d7c
mov eax, dword [esp + 0xc]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x10]
mov byte [esp + 0x6c], al
push 0x56a4f8
push 0x56a5f0
lea eax, [esp + 0x70]
push eax
push 0x2b
push str.called__Result::unwrap____on_an__Err__value
call fcn.00414e90
add esp, 0x14
jmp 0x4e4d7c
push 1
push edi
call fcn.004085f0
add esp, 8
jmp 0x4e4d7c
call fcn.004085b0
jmp 0x4e4d7c
push 0x56a4e8
push 0x20
push str.assertion_failed:_prev.is_none__V
call fcn.00414ad0
add esp, 0xc
jmp 0x4e4d7c
mov dword [esp + 0x68], str.lolwut
mov dword [esp + 0x6c], 1
mov dword [esp + 0x70], 0
mov dword [esp + 0x78], 0x56a554
mov dword [esp + 0x7c], 0
push 0x56a554
lea eax, [esp + 0x6c]
push eax
call fcn.00414c50
add esp, 8
jmp 0x4e4d7c
push 0x56a534
push 0x2a
push 0x56a508
call fcn.00414ad0
add esp, 0xc
jmp 0x4e4d7c
push 0x56a58c
push 0x28
push 0x56a564
call fcn.00414ad0
add esp, 0xc
jmp 0x4e4d7c
mov eax, dword [esp + 0xc]
mov dword [esp + 0x68], eax
mov byte [esp + 0x6c], cl
push 0x56a59c
push 0x56a5f0
lea eax, [esp + 0x70]
push eax
push 0x2b
push str.called__Result::unwrap____on_an__Err__value
call fcn.00414e90
add esp, 0x14
ud2
mov eax, 0x56a4a8
mov ecx, 0x2b
mov edx, 0x56a47c
jmp 0x4e4c60