Function at 0x41f440
Capabilities:
Get system information on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xffffffc0
sub esp, 0x200
mov eax, dword [edx + 8]
mov edi, edx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x18], edx
test eax, eax
jne 0x41f8f3
lea ecx, [esp + 0xc0]
mov edx, str.RAYON_NUM_THREADSRAYON_RS_NUM_CPUSSHA1SHA256SHA384SHA512SHA512_256UnexpectedErrorInvalidEncodingInvalidComponentTooLarge
push 0x11
call fcn.0047d140
add esp, 4
mov edi, dword [esp + 0xc0]
mov eax, edi
neg eax
jo 0x41f5ab
mov eax, dword [esp + 0xc4]
mov ebx, dword [esp + 0xc8]
test byte [esp + 0xcc], 1
mov dword [esp + 0x10], eax
je 0x41f4dd
mov esi, dword [esp + 0x10]
test ebx, ebx
je 0x41f598
cmp ebx, 1
jne 0x41f554
movzx eax, byte [esi]
cmp eax, 0x2b
je 0x41f598
mov ebx, 1
cmp eax, 0x2d
mov ecx, esi
je 0x41f598
jmp 0x41f7c5
test ebx, ebx
je 0x41f594
mov edx, dword [esp + 0x10]
lea esi, [edx + ebx]
jmp 0x41f506
add edx, 2
cmp ecx, esi
cmovne ecx, edx
nop word cs:[eax + eax]
cmp ecx, esi
mov edx, ecx
je 0x41f4a7
movzx eax, byte [edx]
lea ecx, [edx + 1]
test al, al
jns 0x41f500
cmp al, 0xe0
jb 0x41f4ee
cmp al, 0xed
jne 0x41f534
cmp ecx, esi
je 0x41f4a7
lea eax, [edx + 2]
cmp eax, esi
je 0x41f4a7
cmp byte [edx + 1], 0x9f
ja 0x420c97
add edx, 3
mov ecx, edx
jmp 0x41f500
add edx, 2
cmp ecx, esi
cmove edx, ecx
xor ecx, ecx
cmp edx, esi
setne cl
add ecx, edx
cmp al, 0xf0
jb 0x41f500
xor eax, eax
cmp ecx, esi
setne al
add ecx, eax
jmp 0x41f500
cmp byte [esi], 0x2b
jne 0x41f7ba
cmp ebx, 0xa
lea ecx, [esi + 1]
lea ebx, [ebx - 1]
jb 0x41f7c5
xor eax, eax
nop
sub ebx, 1
jb 0x41f7e9
mov edx, 0xa
mul edx
jo 0x41f598
movzx edx, byte [ecx]
add edx, 0xffffffd0
cmp edx, 9
ja 0x41f598
inc ecx
add eax, edx
jae 0x41f570
jmp 0x41f598
mov esi, dword [esp + 0x10]
test edi, edi
je 0x41f5ab
push esi
push 0
push dword [0x623140]
call dword [sym.imp.KERNEL32.dll_HeapFree]
lea ebx, [esp + 0xc0]
mov edx, 0x5e0805
mov ecx, ebx
push 0x11
call fcn.0047d140
add esp, 4
mov edi, dword [esp + 0xc0]
mov eax, edi
neg eax
jno 0x41f5d9
mov edi, dword [esp + 0x18]
jmp 0x41f704
mov eax, dword [esp + 0xc4]
mov ebx, dword [esp + 0xc8]
test byte [esp + 0xcc], 1
mov dword [esp + 0x10], eax
je 0x41f62b
mov esi, dword [esp + 0x10]
test ebx, ebx
je 0x41f6e6
cmp ebx, 1
jne 0x41f6a4
movzx eax, byte [esi]
cmp eax, 0x2b
je 0x41f6e6
mov ebx, 1
cmp eax, 0x2d
mov ecx, esi
je 0x41f6e6
jmp 0x41f8a8
test ebx, ebx
je 0x41f6e2
mov edx, dword [esp + 0x10]
lea esi, [edx + ebx]
jmp 0x41f656
add edx, 2
cmp ecx, esi
cmovne ecx, edx
nop word cs:[eax + eax]
nop
cmp ecx, esi
mov edx, ecx
je 0x41f5f5
movzx eax, byte [edx]
lea ecx, [edx + 1]
test al, al
jns 0x41f650
cmp al, 0xe0
jb 0x41f63c
cmp al, 0xed
jne 0x41f684
cmp ecx, esi
je 0x41f5f5
lea eax, [edx + 2]
cmp eax, esi
je 0x41f5f5
cmp byte [edx + 1], 0x9f
ja 0x420cad
add edx, 3
mov ecx, edx
jmp 0x41f650
add edx, 2
cmp ecx, esi
cmove edx, ecx
xor ecx, ecx
cmp edx, esi
setne cl
add ecx, edx
cmp al, 0xf0
jb 0x41f650
xor eax, eax
cmp ecx, esi
setne al
add ecx, eax
jmp 0x41f650
cmp byte [esi], 0x2b
jne 0x41f89d
cmp ebx, 0xa
lea ecx, [esi + 1]
lea ebx, [ebx - 1]
jb 0x41f8a8
xor eax, eax
sub ebx, 1
jb 0x41f8c9
mov edx, 0xa
mul edx
jo 0x41f6e6
movzx edx, byte [ecx]
add edx, 0xffffffd0
cmp edx, 9
ja 0x41f6e6
inc ecx
add eax, edx
jae 0x41f6be
jmp 0x41f6e6
mov esi, dword [esp + 0x10]
test edi, edi
mov edi, dword [esp + 0x18]
lea ebx, [esp + 0xc0]
je 0x41f704
push esi
push 0
push dword [0x623140]
call dword [sym.imp.KERNEL32.dll_HeapFree]
pxor xmm0, xmm0
mov dword [esp + 0xe0], 0
movdqa xmmword [esp + 0xd0], xmm0
movdqa xmmword [esp + 0xc0], xmm0
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [esp + 0xd4]
test eax, eax
jne 0x41f8f3
mov ecx, dword [0x5e3b10]
mov eax, dword [0x5e3b14]
cmp cl, 4
je 0x41f8f3
cmp cl, 4
je 0x41f8f3
mov esi, 1
cmp cl, 3
jne 0x41f900
mov ebx, dword [eax + 4]
mov esi, dword [eax]
mov ecx, dword [ebx]
test ecx, ecx
je 0x41f77b
push esi
mov edi, eax
call ecx
mov eax, edi
add esp, 4
cmp dword [ebx + 4], 0
je 0x41f79d
cmp dword [ebx + 8], 9
mov edi, eax
jb 0x41f78c
mov esi, dword [esi - 4]
push esi
push 0
push dword [0x623140]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, edi
mov edi, dword [esp + 0x18]
push eax
push 0
push dword [0x623140]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov esi, 1
jmp 0x41f900
cmp ebx, 9
mov ecx, esi
jae 0x41f56c
xor eax, eax
nop word [eax + eax]
movzx edx, byte [ecx]
add edx, 0xffffffd0
cmp edx, 9
ja 0x41f598
lea eax, [eax + eax*4]
inc ecx
dec ebx
lea eax, [edx + eax*2]
jne 0x41f7d0
test edi, edi
je 0x41f800
push esi
push 0
push dword [0x623140]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, esi
mov edi, dword [esp + 0x18]
test eax, eax
jne 0x41f8f3
pxor xmm0, xmm0
lea eax, [esp + 0xc0]
mov dword [esp + 0xe0], 0
movdqa xmmword [esp + 0xd0], xmm0
movdqa xmmword [esp + 0xc0], xmm0
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [esp + 0xd4]
test eax, eax
jne 0x41f8f3
mov ecx, dword [0x5e3b10]
mov eax, dword [0x5e3b14]
cmp cl, 4
je 0x41f8f3
cmp cl, 4
je 0x41f8f3
mov esi, 1
cmp cl, 3
jne 0x41f900
mov ebx, dword [eax + 4]
mov esi, dword [eax]
mov ecx, dword [ebx]
test ecx, ecx
je 0x41f88e
push esi
mov edi, eax
call ecx
mov eax, edi
mov edi, dword [esp + 0x1c]
add esp, 4
cmp dword [ebx + 4], 0
jne 0x41f781
jmp 0x41f7a1
cmp ebx, 9
mov ecx, esi
jae 0x41f6bc
xor eax, eax
nop word [eax + eax]
movzx edx, byte [ecx]
add edx, 0xffffffd0
cmp edx, 9
ja 0x41f6e6
lea eax, [eax + eax*4]
inc ecx
dec ebx
lea eax, [edx + eax*2]
jne 0x41f8b0
test edi, edi
lea ebx, [esp + 0xc0]
je 0x41f8e7
push esi
push 0
push dword [0x623140]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, esi
mov edi, dword [esp + 0x18]
test eax, eax
je 0x41f704
cmp eax, 0xff
mov esi, 0xff
cmovb esi, eax
movzx eax, byte [edi + 0x2d]
test esi, esi
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 4
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 4
mov dword [esp + 0xd4], 0
mov dword [esp + 0x30], esi
jne 0x420895
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 4
mov dword [esp + 0xc8], 0
mov dword [esp + 0x20], 4
mov dword [esp + 0x40], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x1c0], 0
mov edi, 4
xor esi, esi
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], 4
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0xc8]
movq xmm0, qword [esp + 0xc0]
mov ecx, 0x1c
mov dword [esp + 0x1a8], eax
mov eax, esi
movq qword [esp + 0x1a0], xmm0
mul ecx
jo 0x420ce6
cmp eax, 0x7ffffffd
jae 0x420ce6
xor ebx, ebx
test eax, eax
je 0x41fa1b
movzx ecx, byte [0x62314d]
mov edx, eax
xor ecx, ecx
call fcn.0048bb80
test eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x24], esi
je 0x420ce6
test esi, esi
jne 0x41fa2f
jmp 0x41fa7a
mov dword [esp + 0x10], 4
mov dword [esp + 0x24], 0
test esi, esi
je 0x41fa7a
mov eax, dword [esp + 0x10]
lea esi, [edi + esi*8]
xor ebx, ebx
lea ecx, [eax + 0x18]
nop dword [eax + eax]
mov edx, dword [edi + ebx*8]
movzx eax, byte [edi + ebx*8 + 4]
mov dword [ecx - 0x18], 0
mov word [ecx - 0x14], 0
mov dword [ecx - 0x10], 0
mov word [ecx - 0xc], 0
mov dword [ecx - 8], 0
mov dword [ecx - 4], edx
lea edx, [edi + ebx*8 + 8]
mov byte [ecx], al
add ecx, 0x1c
inc ebx
cmp edx, esi
jne 0x41fa40
cmp dword [esp + 0x1c0], 0
je 0x41fa93
push edi
push 0
push dword [0x623140]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov esi, dword [esp + 0x30]
test esi, esi
je 0x41fae5
mov edx, esi
movzx eax, byte [0x62314d]
xor ecx, ecx
shl edx, 6
add edx, 0x40
call fcn.0048bb80
test eax, eax
je 0x420ce6
mov ecx, eax
and ecx, 0xffffffc0
mov dword [ecx + 0x3c], eax
lea edi, [ecx + 0x40]
add ecx, 0x45
mov eax, esi
nop dword [eax]
mov dword [ecx - 5], 0
mov word [ecx - 1], 0
add ecx, 0x40
dec eax
jne 0x41fad0
jmp 0x41faea
mov edi, 0x40
movzx eax, byte [0x62314d]
xor ecx, ecx
mov edx, 0x2f8
call fcn.0048bb80
test eax, eax
je 0x420ce6
mov esi, eax
push 0x2f8
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, dword [esp + 0x1a8]
movsd xmm0, qword [esp + 0x1a0]
xor ecx, ecx
mov edx, 0x180
mov dword [esp + 0x5b], eax
mov eax, dword [esp + 0x18]
movsd qword [esp + 0x53], xmm0
movq xmm0, qword [eax + 0xc]
movsd xmm2, qword [eax + 0x1c]
mov dword [eax + 0xc], 0
mov dword [eax + 0x1c], 0
movsd xmm1, qword [eax + 0x24]
mov dword [eax + 0x24], 0
movaps xmmword [esp + 0x1c0], xmm2
movsd xmm2, qword [esp + 0x50]
movdqa xmmword [esp + 0x190], xmm0
movaps xmmword [esp + 0x1d0], xmm1
movsd xmm1, qword [esp + 0x57]
movsd qword [esp + 0xc7], xmm1
movsd qword [esp + 0xc0], xmm2
movzx eax, byte [0x62314d]
call fcn.0048bb80
test eax, eax
je 0x420ce6
mov ecx, eax
mov edx, dword [esp + 0x2c]
and ecx, 0xffffffc0
mov dword [ecx + 0x3c], eax
mov dword [ecx + 0x40], 1
mov dword [ecx + 0x44], 1
mov dword [ecx + 0x80], 0
mov dword [ecx + 0x84], esi
mov dword [ecx + 0xc0], 0
mov dword [ecx + 0xc4], esi
mov byte [ecx + 0x100], 0
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
movsd xmm0, qword [esp + 0xc0]
movsd xmm1, qword [esp + 0xc7]
movsd qword [ecx + 0x101], xmm0
movaps xmm0, xmmword [esp + 0x190]
movsd qword [ecx + 0x108], xmm1
unpcklpd xmm0, xmmword [esp + 0x1c0]
movups xmmword [ecx + 0x110], xmm0
movdqa xmm0, xmmword [esp + 0x1d0]
movq qword [ecx + 0x120], xmm0
mov dword [ecx + 0x128], 1
mov dword [ecx + 0x12c], eax
mov dword [ecx + 0x130], edi
mov dword [ecx + 0x134], eax
mov eax, dword [esp + 0x24]
mov dword [ecx + 0x138], 0
mov edi, edx
pxor xmm0, xmm0
shl edi, 4
mov dword [ecx + 0x13c], eax
mov eax, dword [esp + 0x10]
mov dword [ecx + 0x140], eax
lea eax, [ecx + 0x40]
mov dword [ecx + 0x144], ebx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x20]
add edi, eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x58], ecx
test edx, edx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x60], esi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x64], esi
lea eax, [esi + eax*8]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], eax
movq qword [esp + 0x70], xmm0
movq qword [esp + 0x78], xmm0
je 0x4205f6
mov esi, dword [esp + 0x20]
jmp 0x41fd0a
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x30], eax
nop word cs:[eax + eax]
cmp esi, dword [esp + 0x30]
je 0x4205f6
lea edx, [esi + 0x10]
mov dword [esp + 0x54], edx
movzx ebx, byte [esi + 0xc]
cmp bl, 2
je 0x4205f6
mov eax, dword [esi + 8]
lea ecx, [esp + 0xcd]
mov dword [esp + 0xc8], eax
movsd xmm0, qword [esi]
movsd qword [esp + 0xc0], xmm0
movzx eax, byte [esi + 0xf]
mov byte [ecx + 2], al
movzx eax, word [esi + 0xd]
mov word [ecx], ax
mov eax, dword [esp + 0x64]
mov byte [esp + 0xcc], bl
cmp eax, dword [esp + 0x6c]
je 0x4205de
lea ecx, [eax + 8]
movsd xmm0, qword [esp + 0xc0]
add esi, 0xd
mov dword [esp + 0x190], edx
mov byte [esp + 0x14], bl
mov dword [esp + 0x64], ecx
mov ecx, dword [eax]
mov dword [esp + 0x24], ecx
mov ch, byte [eax + 4]
mov eax, dword [esp + 0xc8]
movsd qword [esp + 0x1b0], xmm0
mov dword [esp + 0x1b8], eax
mov byte [esp + 0x28], ch
movzx eax, word [esi]
mov word [esp + 0x38], ax
movzx eax, byte [esi + 2]
mov esi, dword [esp + 0x7c]
mov byte [esp + 0x3a], al
lea eax, [esi + 1]
mov dword [esp + 0x7c], eax
mov eax, dword [edi + 0x14]
test eax, eax
je 0x41fe00
mov ecx, dword [edi + 0x18]
push esi
push eax
lea eax, [esp + 0xc8]
push eax
call dword [ecx + 0x10]
add esp, 0xc
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xc8]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x2c], edx
jmp 0x41fe05
mov eax, connect
mov ebx, dword [esp + 0x34]
mov ecx, edi
mov edi, dword [edi]
mov edx, dword [ecx + 4]
lock inc dword [ebx]
jle 0x420ce6
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x94], eax
mov dword [esp + 0x10], edx
movq xmm0, qword [esp + 0x1b0]
test esi, esi
mov dword [esp + 0x98], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 0x1b8]
mov dword [esp + 0x8c], edi
mov dword [esp + 0x90], edx
lea edx, [esp + 0xa8]
movq qword [edx], xmm0
mov dword [edx + 8], ecx
movzx ecx, byte [esp + 0x14]
mov byte [esp + 0xb4], cl
movzx ecx, word [esp + 0x38]
mov word [edx + 0xd], cx
movzx ecx, byte [esp + 0x3a]
mov byte [edx + 0xf], cl
mov ecx, dword [esp + 0x24]
movzx edx, byte [esp + 0x28]
mov dword [esp + 0xa0], ecx
mov byte [esp + 0xa4], dl
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], esi
jne 0x41ffb0
mov ecx, dword [esp + 0x18]
cmp byte [ecx + 0x2c], 0
je 0x41ffb0
mov ecx, dword [0x623150]
mov edx, dword fs:[0x2c]
lea edi, [esp + 0xc0]
mov ecx, dword [edx + ecx*4]
cmp dword [ecx + 0x24], 0
jne 0x420c00
mov ecx, edi
lea edx, [esp + 0x8c]
call fcn.0041e5e0
movzx eax, byte [0x62314d]
xor ecx, ecx
mov edx, 0x100
call fcn.0048bb80
test eax, eax
je 0x420ce6
mov esi, eax
and esi, 0xffffffc0
mov dword [esi + 0x3c], eax
add esi, 0x40
push 0xc0
push edi
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [0x623150]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
cmp dword [eax + 0x24], 0
jne 0x420ce6
mov eax, dword [0x623150]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0x24], esi
cmp dword [ebx + 0x104], 0
je 0x420ce6
mov edi, dword [ebx + 0x100]
xor eax, eax
mov cl, 1
lock cmpxchg byte [edi + 4], cl
lea esi, [edi + 4]
jne 0x4205a7
mov byte [edi + 5], 1
lock inc dword [edi]
push edi
call dword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressAll]
xor eax, eax
xchg byte [edi + 4], al
cmp al, 2
jne 0x41fce6
push esi
call dword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressSingle]
jmp 0x41fce6
neg eax
mov dword [esp + 0x20], ebx
jno 0x41ffd0
mov edx, connect
xor esi, esi
mov eax, dword [esp + 0x10]
test edi, edi
je 0x420016
jmp 0x420024
mov esi, dword [esp + 0x2c]
test esi, esi
js 0x420ce6
je 0x41fff9
movzx eax, byte [0x62314d]
xor ecx, ecx
mov edx, esi
call fcn.0048bb80
mov ebx, eax
test eax, eax
jne 0x41fffe
jmp 0x420ce6
mov ebx, 1
push esi
push dword [esp + 0x20]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edx, esi
mov eax, dword [esp + 0x10]
test edi, edi
jne 0x420024
mov eax, dword [0x623148]
test eax, eax
je 0x4200a6
dec eax
mov ecx, edx
mov dword [esp + 0x10], eax
neg ecx
jno 0x4201a0
movzx eax, byte [0x62314d]
xor ecx, ecx
mov edx, 0x20
call fcn.0048bb80
test eax, eax
je 0x420ce6
mov dword [eax], 1
mov dword [eax + 4], 1
mov dword [eax + 0x10], 2
mov edi, eax
movq xmm0, qword [0x623120]
movd eax, xmm0
pshufd xmm0, xmm0, 0x55
movd edx, xmm0
nop dword [eax + eax]
mov ecx, eax
and ecx, edx
cmp ecx, 0xffffffff
je 0x420ce6
mov ebx, eax
mov ecx, edx
add ebx, 1
adc ecx, 0
lock cmpxchg8b qword [0x623120]
jne 0x420080
jmp 0x4202f1
lea ecx, [esp + 0xc0]
mov dword [esp + 0x10], edx
mov edx, str.RUST_MIN_STACKUrlschemecannot_be_a_baseusernamepasswordhostportpathqueryfragmentdescription___is_deprecated__use_Display
push 0xe
call fcn.0047d140
add esp, 4
mov ecx, dword [esp + 0xc0]
mov eax, ecx
neg eax
jno 0x4200d7
mov eax, 0x200000
jmp 0x420180
mov edx, dword [esp + 0xc4]
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x44]
mov dword [esp + 0x24], edx
push dword [esp + 0xc8]
call fcn.0040ebc0
add esp, 4
test byte [esp + 0x44], 1
jne 0x42015e
mov edi, dword [esp + 0x4c]
test edi, edi
je 0x42015e
mov ecx, dword [esp + 0x48]
cmp edi, 1
jne 0x420128
movzx eax, byte [ecx]
cmp eax, 0x2b
je 0x42015e
mov edi, 1
cmp eax, 0x2d
je 0x42015e
jmp 0x4205bc
cmp byte [ecx], 0x2b
jne 0x4205b3
inc ecx
cmp edi, 0xa
lea edi, [edi - 1]
jb 0x4205bc
xor eax, eax
sub edi, 1
jb 0x420163
mov edx, 0xa
mul edx
jo 0x42015e
movzx edx, byte [ecx]
add edx, 0xffffffd0
cmp edx, 9
ja 0x42015e
inc ecx
add eax, edx
jae 0x420140
mov eax, 0x200000
cmp dword [esp + 0x14], 0
je 0x420180
push dword [esp + 0x24]
push 0
push dword [0x623140]
mov edi, eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, edi
lea ecx, [eax + 1]
mov dword [0x623148], ecx
mov edx, dword [esp + 0x10]
mov ecx, edx
mov dword [esp + 0x10], eax
neg ecx
jo 0x420032
nop dword [eax + eax]
cmp esi, 7
mov dword [esp + 0xc0], edx
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc8], esi
ja 0x4201e2
test esi, esi
je 0x42026d
nop word cs:[eax + eax]
nop dword [eax]
cmp byte [ebx], 0
je 0x420ce6
inc ebx
dec esi
jne 0x4201d0
jmp 0x42026d
lea edx, [ebx + 3]
and edx, 0xfffffffc
mov eax, edx
sub eax, ebx
jne 0x4201f9
lea eax, [esi - 8]
mov dword [esp + 0x14], eax
xor eax, eax
jmp 0x420220
mov ecx, ebx
sub ecx, edx
mov edx, ebx
nop
cmp byte [edx], 0
je 0x420ce6
inc edx
inc ecx
jne 0x420200
lea ecx, [esi - 8]
cmp eax, ecx
mov dword [esp + 0x14], ecx
ja 0x42024e
nop dword [eax + eax]
mov edi, dword [ebx + eax + 4]
mov edx, dword [ebx + eax]
mov ecx, 0x1010100
sub ecx, edi
or ecx, edi
mov edi, 0x1010100
sub edi, edx
or edi, edx
and edi, ecx
not edi
test edi, 0x80808080
jne 0x42024e
add eax, 8
cmp eax, dword [esp + 0x14]
jbe 0x420220
sub esi, eax
je 0x42026d
add ebx, eax
nop word cs:[eax + eax]
nop
cmp byte [ebx], 0
je 0x420ce6
inc ebx
dec esi
jne 0x420260
lea ecx, [esp + 0xc0]
call fcn.0040d490
mov esi, eax
movzx eax, byte [0x62314d]
mov ebx, edx
xor ecx, ecx
mov edx, 0x20
call fcn.0048bb80
test eax, eax
je 0x420ce6
mov dword [eax], 1
mov dword [eax + 4], 1
mov dword [eax + 0x10], 1
mov dword [eax + 0x14], esi
mov dword [eax + 0x18], ebx
mov edi, eax
movq xmm0, qword [0x623120]
movd eax, xmm0
pshufd xmm0, xmm0, 0x55
movd edx, xmm0
nop dword [eax]
mov ecx, eax
and ecx, edx
cmp ecx, 0xffffffff
je 0x420ce6
mov ebx, eax
mov ecx, edx
add ebx, 1
adc ecx, 0
lock cmpxchg8b qword [0x623120]
jne 0x4202d0
mov dword [edi + 8], ebx
mov dword [edi + 0xc], ecx
mov byte [edi + 0x1c], 0
lock inc dword [edi]
jle 0x420ce6
movzx eax, byte [0x62314d]
xor ecx, ecx
mov edx, 0x18
call fcn.0048bb80
test eax, eax
je 0x420ce6
mov dword [eax], 1
mov dword [eax + 4], 1
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [esp + 0x44], eax
mov ebx, eax
lock inc dword [eax]
jle 0x420ce6
movzx eax, byte [0x6230c8]
test al, al
je 0x4203e0
mov byte [0x6230c8], 1
mov eax, dword [0x623150]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax + 0x44]
cmp eax, 1
jne 0x420583
mov eax, dword [0x623150]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov esi, dword [eax + 0x48]
mov dword [eax + 0x48], 0
test esi, esi
je 0x4203e0
lock inc dword [esi]
jle 0x420ce6
mov byte [0x6230c8], 1
mov eax, dword [0x623150]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax + 0x44]
cmp eax, 1
je 0x420416
test eax, eax
je 0x42059d
jmp 0x420cda
movzx eax, byte [0x6230c8]
test al, al
je 0x420567
mov byte [0x6230c8], 1
xor esi, esi
mov eax, dword [0x623150]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax + 0x44]
cmp eax, 1
jne 0x420595
mov eax, dword [0x623150]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x14], esi
mov ecx, dword [eax + 0x48]
mov dword [eax + 0x48], esi
test ecx, ecx
je 0x420443
lock dec dword [ecx]
jne 0x420443
call fcn.0041eb20
mov esi, dword [esp + 0x44]
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x420458
lock inc dword [ecx + 0xc]
jle 0x420cce
movzx eax, byte [0x62314d]
xor ecx, ecx
mov edx, 0x40
call fcn.0048bb80
test eax, eax
je 0x420ce6
mov ecx, dword [esp + 0x14]
mov dword [eax], edi
mov dword [eax + 4], ebx
mov edx, dword [esp + 0x10]
mov dword [eax + 8], ecx
movsd xmm0, qword [esp + 0x8c]
movsd xmm1, qword [esp + 0x94]
movsd qword [eax + 0xc], xmm0
movsd qword [eax + 0x14], xmm1
movsd xmm0, qword [esp + 0x9c]
movsd qword [eax + 0x1c], xmm0
movsd xmm0, qword [esp + 0xa4]
movsd qword [eax + 0x24], xmm0
movsd xmm0, qword [esp + 0xac]
movsd qword [eax + 0x2c], xmm0
movq xmm0, qword [esp + 0xb4]
movq qword [eax + 0x34], xmm0
mov ecx, dword [esp + 0xbc]
mov dword [eax + 0x3c], ecx
lea ecx, [esp + 0xc0]
push 0x5e07d0
push eax
call fcn.00489d80
add esp, 8
movzx ebx, byte [esp + 0xc0]
cmp bl, 4
jne 0x4206fd
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], eax
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lock dec dword [edi]
jne 0x42053b
mov ecx, dword [esp + 0x80]
call fcn.0047ae70
mov eax, dword [esp + 0x84]
lock dec dword [eax]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x190]
jne 0x41fd00
lea ecx, [esp + 0x84]
call fcn.0041eb60
jmp 0x41fd00
mov dword [esp + 0x14], 0
mov esi, dword [esp + 0x44]
mov ecx, dword [esi + 8]
test ecx, ecx
jne 0x42044e
jmp 0x420458
test eax, eax
jne 0x420ce6
call fcn.004df050
jmp 0x42037d
test eax, eax
jne 0x420ce6
call fcn.004df050
jmp 0x420416
mov ecx, esi
call fcn.004defa0
jmp 0x41ff7b
cmp edi, 9
jae 0x42013e
xor eax, eax
nop
movzx edx, byte [ecx]
add edx, 0xffffffd0
cmp edx, 9
ja 0x42015e
lea eax, [eax + eax*4]
inc ecx
dec edi
lea eax, [edx + eax*2]
jne 0x4205c0
jmp 0x420163
mov eax, dword [esp + 0xc0]
lock dec dword [eax]
jne 0x4205f6
lea ecx, [esp + 0xc0]
call fcn.0041e8b0
lea ecx, [esp + 0x50]
call fcn.00420cf0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
mov dword [ecx + 4], eax
mov byte [ecx], 6
mov esi, dword [edi + 0xc]
test esi, esi
je 0x420645
mov eax, dword [esp + 0x18]
mov edi, dword [eax + 0x10]
mov eax, dword [edi]
test eax, eax
je 0x420627
push esi
call eax
add esp, 4
cmp dword [edi + 4], 0
je 0x420645
cmp dword [edi + 8], 9
jb 0x420636
mov esi, dword [esi - 4]
push esi
push 0
push dword [0x623140]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esp + 0x18]
mov esi, dword [eax + 0x14]
test esi, esi
je 0x420681
mov eax, dword [esp + 0x18]
mov edi, dword [eax + 0x18]
mov eax, dword [edi]
test eax, eax
je 0x420663
push esi
call eax
add esp, 4
cmp dword [edi + 4], 0
je 0x420681
cmp dword [edi + 8], 9
jb 0x420672
mov esi, dword [esi - 4]
push esi
push 0
push dword [0x623140]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esp + 0x18]
mov esi, dword [eax + 0x1c]
test esi, esi
je 0x4206bd
mov eax, dword [esp + 0x18]
mov edi, dword [eax + 0x20]
mov eax, dword [edi]
test eax, eax
je 0x42069f
push esi
call eax
add esp, 4
cmp dword [edi + 4], 0
je 0x4206bd
cmp dword [edi + 8], 9
jb 0x4206ae
mov esi, dword [esi - 4]
push esi
push 0
push dword [0x623140]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esp + 0x18]
mov esi, dword [eax + 0x24]
test esi, esi
je 0x4206f5
mov edi, dword [eax + 0x28]
mov eax, dword [edi]
test eax, eax
je 0x4206d7
push esi
call eax
add esp, 4
cmp dword [edi + 4], 0
je 0x4206f5
cmp dword [edi + 8], 9
jb 0x4206e6
mov esi, dword [esi - 4]
push esi
push 0
push dword [0x623140]
call dword [sym.imp.KERNEL32.dll_HeapFree]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0xc4]
movzx ecx, byte [esp + 0xc3]
movzx edx, word [esp + 0xc1]
mov dword [esp + 0x10], eax
shl edx, 8
shl ecx, 0x18
lock dec dword [esi]
jne 0x420738
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x44]
mov esi, edx
call fcn.0041eb60
mov ecx, dword [esp + 0x14]
mov edx, esi
or ecx, edx
lock dec dword [edi]
jne 0x42074a
mov esi, ecx
mov ecx, edi
call fcn.0047ae70
mov ecx, esi
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x10]
movzx eax, bl
or ecx, eax
mov dword [esi + 4], edx
mov dword [esi], ecx
mov esi, dword [esp + 0x20]
lea ecx, [esp + 0x50]
call fcn.00420cf0
mov dword [esp + 0x20], esi
lock dec dword [esi + 0xe8]
jne 0x42086f
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x104]
test eax, eax
je 0x42086f
mov ecx, dword [esp + 0x20]
mov esi, 4
xor ebx, ebx
mov edi, dword [ecx + 0x100]
lea ecx, [eax + eax*8]
lea ecx, [ecx + ecx*2]
add ecx, eax
add edi, 0x10
jmp 0x4207c0
add edi, 0x1c
add esi, 0x40
inc ebx
add ecx, 0xffffffe4
je 0x42086f
mov eax, 3
xchg dword [edi], eax
cmp eax, 2
jne 0x4207b0
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], edi
cmp dword [eax + 0xf4], ebx
jbe 0x420ce6
mov edi, dword [eax + 0xf0]
mov dl, 1
lea eax, [edi + esi]
mov dword [esp + 0x10], eax
xor eax, eax
lock cmpxchg byte [edi + esi], dl
mov edx, edi
mov dword [esp + 0x14], ecx
jne 0x42084d
cmp byte [edx + esi + 1], 0
mov edi, dword [esp + 0x1c]
je 0x42082d
mov byte [edx + esi + 1], 0
lea eax, [edx + esi - 4]
lock inc dword [edx + esi - 4]
push eax
call dword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressSingle]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
lock dec dword [eax + 0xf8]
mov edx, dword [esp + 0x10]
xor eax, eax
xchg byte [edx], al
cmp al, 2
jne 0x4207b0
push edx
call dword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressSingle]
mov ecx, dword [esp + 0x14]
jmp 0x4207b0
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x2c], edx
call fcn.004defa0
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
cmp byte [edx + esi + 1], 0
mov edi, dword [esp + 0x1c]
jne 0x420809
jmp 0x42082d
mov eax, dword [esp + 0x34]
lock dec dword [eax]
jne 0x420881
lea ecx, [esp + 0x34]
call fcn.0041e900
mov edi, dword [esp + 0x18]
mov esi, dword [edi + 0xc]
test esi, esi
jne 0x420614
jmp 0x420645
mov edx, esi
mov byte [esp + 0x28], al
lea ecx, [esp + 0xc0]
push 0x10
call fcn.004de450
add esp, 4
mov edx, esi
lea ecx, [esp + 0xcc]
push 8
call fcn.004de450
add esp, 4
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xd0]
mov ebx, dword [esp + 0xd4]
mov dword [esp + 0x2c], eax
shl eax, 4
mov dword [esp + 0x24], edx
mov edx, ebx
mov dword [esp + 0x20], ecx
lea edi, [eax + ecx + 0xc]
movzx eax, byte [0x62314d]
cmp byte [esp + 0x28], 0
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], esi
je 0x420970
xor ecx, ecx
mov edx, 0x200
call fcn.0048bb80
test eax, eax
je 0x420ce6
mov ebx, eax
movzx eax, byte [0x62314d]
xor ecx, ecx
mov edx, 8
call fcn.0048bb80
test eax, eax
je 0x420ce6
mov dword [eax], ebx
mov dword [esp + 0x1c], ebx
mov dword [eax + 4], 0x40
mov esi, eax
xor ecx, ecx
mov edx, 0x100
xor ebx, ebx
movzx eax, byte [0x62314d]
call fcn.0048bb80
test eax, eax
jne 0x4209cd
jmp 0x420ce6
xor ecx, ecx
mov edx, 0x200
call fcn.0048bb80
test eax, eax
je 0x420ce6
mov ebx, eax
movzx eax, byte [0x62314d]
xor ecx, ecx
mov edx, 8
call fcn.0048bb80
test eax, eax
je 0x420ce6
mov dword [eax], ebx
mov dword [esp + 0x1c], ebx
mov dword [eax + 4], 0x40
mov esi, eax
xor ecx, ecx
mov edx, 0x100
movzx eax, byte [0x62314d]
call fcn.0048bb80
test eax, eax
je 0x420ce6
mov bl, 1
mov ecx, eax
and ecx, 0xffffffc0
mov dword [ecx + 0x3c], eax
mov dword [ecx + 0x40], 1
mov dword [ecx + 0x44], 1
mov dword [ecx + 0x80], esi
mov dword [ecx + 0xc0], 0
mov dword [ecx + 0xc4], 0
lock inc dword [ecx + 0x40]
mov esi, dword [esp + 0x14]
jle 0x420ce6
mov eax, dword [esp + 0x1c]
add ecx, 0x40
mov edx, dword [esp + 0x10]
inc dword [esp + 0x2c]
mov dword [edi - 0xc], ecx
mov dword [edi - 8], eax
mov eax, dword [esp + 0x24]
mov dword [edi - 4], 0x40
mov byte [edi], bl
add edi, 0x10
mov dword [eax + edx*8], ecx
mov byte [eax + edx*8 + 4], bl
inc edx
dec esi
jne 0x4208f0
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xcc]
mov ebx, dword [esp + 0x30]
lea esi, [esp + 0xcc]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 4
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 4
mov dword [esp + 0xd4], 0
mov dword [esp + 0x1c0], ecx
mov dword [esp + 0x40], eax
lea ecx, [esp + 0xc0]
mov edx, ebx
push 0x10
call fcn.004de450
add esp, 4
mov ecx, esi
mov edx, ebx
push 8
call fcn.004de450
add esp, 4
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd4]
mov esi, dword [esp + 0xc8]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x14], ecx
mov ecx, esi
shl ecx, 4
lea edi, [ecx + eax + 0xc]
nop word [eax + eax]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x190], esi
xor ecx, ecx
mov edx, 0x200
movzx eax, byte [0x62314d]
call fcn.0048bb80
test eax, eax
je 0x420ce6
mov esi, eax
movzx eax, byte [0x62314d]
xor ecx, ecx
mov edx, 8
call fcn.0048bb80
test eax, eax
je 0x420ce6
mov dword [eax], esi
mov dword [eax + 4], 0x40
mov ebx, eax
xor ecx, ecx
mov edx, 0x100
movzx eax, byte [0x62314d]
call fcn.0048bb80
test eax, eax
je 0x420ce6
mov ecx, eax
and eax, 0xffffffc0
mov dword [eax + 0x3c], ecx
mov dword [eax + 0x40], 1
mov dword [eax + 0x44], 1
mov dword [eax + 0x80], ebx
mov dword [eax + 0xc0], 0
mov dword [eax + 0xc4], 0
lock inc dword [eax + 0x40]
mov ebx, dword [esp + 0x28]
jle 0x420ce6
add eax, 0x40
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov dword [edi - 0xc], eax
mov dword [edi - 8], esi
mov esi, dword [esp + 0x190]
mov dword [edi - 4], 0x40
mov byte [edi], 0
add edi, 0x10
mov dword [ecx + edx*8], eax
mov byte [ecx + edx*8 + 4], 0
inc edx
inc esi
dec ebx
mov dword [esp + 0x14], edx
jne 0x420b00
mov dword [esp + 0xc8], esi
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x28], eax
jmp 0x41f9b5
mov ecx, dword [esp + 0x3c]
test eax, 0x7fffffff
mov byte [ecx], 5
jne 0x420c47
mov eax, dword [esp + 0xa8]
lock dec dword [eax]
je 0x420c65
mov eax, dword [esp + 0xa0]
lock dec dword [eax]
je 0x420c7d
mov eax, dword [esp + 0xb8]
lock dec dword [eax]
jne 0x420c3e
lea ecx, [esp + 0xb8]
call fcn.0041e900
mov esi, dword [esp + 0x34]
jmp 0x420760
push dword [esp + 0x1c]
push 0
push dword [0x623140]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esp + 0xa8]
lock dec dword [eax]
jne 0x420c1a
lea ecx, [esp + 0xa8]
call fcn.0041e8b0
mov eax, dword [esp + 0xa0]
lock dec dword [eax]
jne 0x420c26
lea ecx, [esp + 0xa0]
call fcn.0041e8b0
mov eax, dword [esp + 0xb8]
lock dec dword [eax]
je 0x420c32
jmp 0x420c3e
mov eax, dword [esp + 0x10]
test edi, 0x7fffffff
je 0x41f5ab
push eax
jmp 0x41f59d
test edi, 0x7fffffff
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
lea ebx, [esp + 0xc0]
je 0x41f704
push eax
jmp 0x41f6f6
add ecx, 8
xor edx, edx
call fcn.0047bd30
ud2
lock dec dword [esi]
mov ecx, esi
jne 0x420ce6
call fcn.0041eb20
ud2