Function at 0x421800
Capabilities:
Get disk size

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c04b2
mov eax, dword fs:[0]
push eax
sub esp, 0x768
mov eax, dword [0x515e20]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x758], ebx
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x738], eax
mov eax, dword [0x517280]
mov ecx, eax
imul ecx, eax
imul eax, ecx
cdq
mov ecx, 9
idiv ecx
mov esi, dword [ebp + 8]
mov dword [ebp - 0x73c], esi
mov byte [ebp - 0x711], 0
cmp edx, 5
jne 0x421879
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
xor eax, eax
mov dword [ebp - 0x750], 0
mov dword [ebp - 0x718], eax
mov dword [ebp - 0x74c], eax
mov dword [ebp - 0x748], eax
mov dword [ebp - 4], eax
mov eax, dword [0x5159f8]
mov ecx, 0x5159f8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x728], eax
or edi, 0xffffffff
cmp byte [ebx + 0xc], 0
mov byte [ebp - 4], 1
je 0x421a9f
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
je 0x421a9f
mov dword [ebp - 0x754], 0
call fcn.00422bf0
lea ecx, [edi + 2]
test al, al
jne 0x4218f2
mov eax, dword [0x517280]
test eax, eax
cmove eax, ecx
mov dword [0x517280], eax
mov esi, dword [esi]
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi - 4], 0
lea edx, [esi - 4]
mov ecx, eax
jl 0x42191a
cmp ecx, dword [esi - 0x10]
jne 0x42191a
lea ebx, [esi - 0x10]
mov eax, 1
lock xadd dword [edx], eax
jmp 0x421947
mov eax, dword [ecx]
push 1
push dword [esi - 0xc]
call dword [eax]
mov ebx, eax
test ebx, ebx
jne 0x42192e
call fcn.004092c0
mov eax, dword [esi - 0xc]
mov dword [ebx + 4], eax
mov ecx, dword [esi - 0xc]
inc ecx
push ecx
push esi
push ecx
lea eax, [ebx + 0x10]
push eax
call fcn.0049ee68
add esp, 0x10
lea esi, [ebx + 0x10]
mov dword [ebp - 0x75c], esi
cmp dword [esi - 4], 1
mov ebx, dword [esi - 0xc]
mov byte [ebp - 4], 2
jle 0x42196f
push ebx
lea ecx, [ebp - 0x75c]
call fcn.00405180
mov esi, dword [ebp - 0x75c]
lea eax, [ebp - 0x754]
push eax
push ebx
push esi
call fcn.00410a60
add esp, 0xc
test al, al
jne 0x421b7c
push 0x4d4774
lea ecx, [ebp - 0x72c]
call fcn.00401c40
mov eax, dword [0x5159f8]
mov ecx, 0x5159f8
mov byte [ebp - 4], 3
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x71c], eax
lea eax, [ebp - 0x72c]
push eax
lea eax, [ebp - 0x71c]
push eax
lea eax, [ebp - 0x740]
push eax
mov byte [ebp - 4], 4
call fcn.0042fa40
push 0
push eax
lea eax, [ebp - 0x724]
push eax
mov byte [ebp - 4], 5
call fcn.0042fb00
add esp, 0x18
push eax
lea ecx, [ebp - 0x728]
mov byte [ebp - 4], 6
call fcn.00402610
mov edx, dword [ebp - 0x724]
add edx, 0xfffffff0
mov byte [ebp - 4], 5
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x421a19
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x740]
add edx, 0xfffffff0
mov byte [ebp - 4], 4
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x421a3c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x71c]
add edx, 0xfffffff0
mov byte [ebp - 4], 3
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x421a5f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x72c]
add edx, 0xfffffff0
mov byte [ebp - 4], 2
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x421a82
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [ebp - 4], 1
lea eax, [esi + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x421a9f
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov bl, byte [ebp - 0x711]
mov eax, dword [0x517280]
imul eax, eax
cdq
mov ecx, 0x17
idiv ecx
cmp edx, 0xb
jne 0x421b28
xor esi, esi
lea esp, [esp]
call fcn.0049ed34
movd xmm0, eax
cvtdq2pd xmm0, xmm0
inc esi
movsd qword [ebp + esi*8 - 0x718], xmm0
cmp esi, 0xe0
jb 0x421ac0
xor ecx, ecx
mov eax, 0xdf
cmp ecx, eax
jge 0x421b1f
lea ebx, [ebx]
movsd xmm0, qword [ebp + eax*8 - 0x710]
movsd xmm1, qword [ebp + eax*8 - 0x718]
comisd xmm0, xmm1
jbe 0x421b1a
movsd qword [ebp + eax*8 - 0x710], xmm1
movsd qword [ebp + eax*8 - 0x718], xmm0
dec eax
cmp eax, ecx
jg 0x421af0
inc ecx
cmp ecx, 0xe0
jl 0x421ae1
mov edx, dword [ebp - 0x728]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x421b49
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x750]
test eax, eax
je 0x421b5c
push eax
call fcn.0049da8e
add esp, 4
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0049e294
mov esp, ebp
pop ebp
ret 8
mov dword [ebp - 0x768], 0
mov dword [ebp - 0x764], 0
mov dword [ebp - 0x760], 0
push dword [ebp - 0x754]
lea ecx, [ebp - 0x768]
mov byte [ebp - 4], 7
call fcn.0041f370
cmp dword [esi - 4], 1
mov ebx, dword [esi - 0xc]
jle 0x421bca
push ebx
lea ecx, [ebp - 0x75c]
call fcn.00405180
mov esi, dword [ebp - 0x75c]
lea eax, [ebp - 0x754]
push eax
push dword [ebp - 0x754]
push dword [ebp - 0x768]
push ebx
push esi
call fcn.00410460
add esp, 0x14
test al, al
jne 0x421ccf
push str.base64_Decode
lea ecx, [ebp - 0x72c]
call fcn.00401c40
mov eax, dword [0x5159f8]
mov ecx, 0x5159f8
mov byte [ebp - 4], 8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x71c], eax
lea eax, [ebp - 0x72c]
push eax
lea eax, [ebp - 0x71c]
push eax
lea eax, [ebp - 0x724]
push eax
mov byte [ebp - 4], 9
call fcn.0042fa40
add esp, 0xc
push eax
lea ecx, [ebp - 0x728]
mov byte [ebp - 4], 0xa
call fcn.00402610
mov edx, dword [ebp - 0x724]
add edx, 0xfffffff0
mov byte [ebp - 4], 9
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x421c6d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x71c]
add edx, 0xfffffff0
mov byte [ebp - 4], 8
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x421c90
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x72c]
add edx, 0xfffffff0
mov byte [ebp - 4], 7
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x421cb3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x768]
test eax, eax
je 0x421a82
push eax
call fcn.0049da8e
add esp, 4
jmp 0x421a82
mov ecx, dword [0x517280]
xor al, al
mov dword [ebp - 0x72c], eax
mov eax, ecx
imul eax, ecx
and eax, reloc.OLEAUT32.dll_VariantInit
jns 0x421cee
dec eax
or eax, 0xfffffff8
inc eax
cmp eax, 6
jne 0x421d54
test ecx, ecx
je 0x421d54
mov eax, ecx
and eax, 0x80000001
jns 0x421d05
dec eax
or eax, 0xfffffffe
inc eax
jne 0x421d12
mov eax, ecx
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
jmp 0x421d19
lea ecx, [ecx*2 + 1]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, ecx
lea eax, [eax + eax*2]
sub edx, eax
mov dword [0x517280], ecx
sub edx, 0
je 0x421d43
sub edx, 2
je 0x421d46
dec edx
je 0x421d47
jmp 0x421d50
add ecx, 2
inc ecx
add ecx, 2
mov dword [0x517280], ecx
test ecx, ecx
jne 0x421cf7
mov eax, ecx
imul eax, ecx
imul eax, ecx
mov byte [ebp - 0x71d], 0
mov dword [ebp - 0x724], 0
and eax, 0x8000000f
jns 0x421d79
dec eax
or eax, 0xfffffff0
inc eax
cmp eax, 4
jne 0x421dd1
movsd xmm3, qword [0x4d39b0]
movsd xmm6, qword [0x4d39b8]
movsd xmm5, qword [0x4d39a8]
movd xmm4, ecx
xorps xmm2, xmm2
cvtdq2pd xmm4, xmm4
addsd xmm2, xmm3
movapd xmm0, xmm2
mulsd xmm0, xmm2
comisd xmm0, xmm4
jbe 0x421dbb
subsd xmm2, xmm3
divsd xmm3, xmm6
movapd xmm1, xmm2
mulsd xmm1, xmm2
movapd xmm0, xmm4
subsd xmm0, xmm1
comisd xmm0, xmm5
ja 0x421da1
mov edi, dword [ebp - 0x758]
mov eax, dword [ebp - 0x764]
mov ecx, dword [edi + 0x18]
sub eax, dword [ebp - 0x768]
xor ebx, ebx
mov dword [ebp - 0x730], ecx
neg ecx
mov dword [ebp - 0x744], eax
mov dword [ebp - 0x71c], ebx
mov dword [ebp - 0x734], ecx
mov dword [ebp - 0x740], eax
jmp 0x421e10
mov dword [ebp - 0x774], 0
mov dword [ebp - 0x770], 0
mov dword [ebp - 0x76c], 0
push dword [edi + 0x18]
lea ecx, [ebp - 0x774]
mov byte [ebp - 4], 0xb
call fcn.0041f370
mov eax, dword [ebp - 0x764]
mov edx, dword [ebp - 0x768]
mov ecx, dword [edi + 0x18]
mov edi, dword [ebp - 0x740]
sub eax, ebx
sub eax, edx
cmp eax, ecx
cmova edi, ecx
lea eax, [ebx + edx]
mov ebx, dword [ebp - 0x774]
push edi
push eax
push ebx
call fcn.0049e6f0
mov ecx, dword [ebp - 0x71c]
mov edx, dword [ebp - 0x72c]
lea eax, [ecx + edi]
mov edi, dword [ebp - 0x758]
movzx edx, dl
add esp, 0xc
cmp eax, dword [ebp - 0x744]
mov eax, 1
cmovge edx, eax
mov eax, dword [ebp - 0x740]
add eax, dword [ebp - 0x734]
add ecx, dword [ebp - 0x730]
mov dword [ebp - 0x740], eax
mov eax, dword [ebp - 0x718]
sub eax, dword [ebp - 0x750]
mov dword [ebp - 0x72c], edx
mov edx, dword [ebp - 0x724]
mov dword [ebp - 0x718], eax
mov eax, dword [edi + 0x18]
inc edx
sub eax, 0xb
imul eax, edx
mov dword [ebp - 0x71c], ecx
push eax
lea ecx, [ebp - 0x750]
mov dword [ebp - 0x724], edx
call fcn.0041f370
mov eax, dword [ebp - 0x750]
add eax, dword [ebp - 0x718]
cmp byte [edi + 0x1c], 0
push 1
push dword [edi + 0x14]
push eax
push ebx
push dword [edi + 0x18]
je 0x421f6d
call fcn.00449670
mov ecx, eax
add esp, 0x14
cmp ecx, 0xffffffff
jne 0x421f80
mov eax, dword [0x5159f8]
mov ecx, 0x5159f8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x718], eax
mov eax, str.RSA_private_decrypt_
mov byte [ebp - 4], 0xc
test eax, 0xffff0000
jne 0x421ff2
movzx edi, ax
push 0
push edi
call fcn.00403010
add esp, 8
test eax, eax
je 0x422004
push edi
push eax
lea ecx, [ebp - 0x718]
call fcn.00406b10
jmp 0x422004
call fcn.00449680
mov ecx, eax
add esp, 0x14
cmp ecx, 0xffffffff
je 0x422160
mov eax, dword [edi + 0x18]
sub eax, 0xb
cmp ecx, eax
jge 0x421f9e
mov eax, dword [ebp - 0x718]
add eax, ecx
push eax
lea ecx, [ebp - 0x750]
call fcn.0041f370
mov byte [ebp - 4], 7
test ebx, ebx
je 0x421fcd
push ebx
call fcn.0049da8e
add esp, 4
mov dword [ebp - 0x774], 0
mov dword [ebp - 0x770], 0
mov dword [ebp - 0x76c], 0
mov eax, dword [ebp - 0x72c]
test al, al
jne 0x42230e
mov eax, dword [ebp - 0x74c]
mov ebx, dword [ebp - 0x71c]
mov dword [ebp - 0x718], eax
jmp 0x421e10
push 0x14
push str.RSA_private_decrypt_
lea ecx, [ebp - 0x718]
call fcn.00408ed0
mov eax, dword [0x5159f8]
mov ecx, 0x5159f8
mov byte [ebp - 4], 0xd
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x724], eax
lea eax, [ebp - 0x718]
push eax
lea eax, [ebp - 0x724]
push eax
lea eax, [ebp - 0x71c]
push eax
mov byte [ebp - 4], 0xe
call fcn.0042fa40
add esp, 0xc
mov edx, dword [eax]
mov ecx, dword [ebp - 0x728]
add ecx, 0xfffffff0
lea edi, [edx - 0x10]
mov byte [ebp - 4], 0xf
mov dword [ebp - 0x730], ecx
cmp edi, ecx
je 0x4220c1
cmp dword [ecx + 0xc], 0
lea eax, [ecx + 0xc]
mov dword [ebp - 0x734], eax
jl 0x4220b2
mov eax, dword [edi]
cmp eax, dword [ecx]
jne 0x4220b2
push edi
call fcn.00404f90
mov ecx, dword [ebp - 0x734]
or edi, 0xffffffff
mov dword [ebp - 0x744], eax
add esp, 4
mov eax, edi
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x4220a1
mov eax, dword [ebp - 0x730]
push eax
mov ecx, dword [eax]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x744]
add eax, 0x10
mov dword [ebp - 0x728], eax
jmp 0x4220c4
push dword [edx - 0xc]
lea ecx, [ebp - 0x728]
push edx
call fcn.00408ed0
or edi, 0xffffffff
mov edx, dword [ebp - 0x71c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xe
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4220e7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x724]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xd
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42210a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x718]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xb
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42212d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x758]
lea eax, [ebp - 0x728]
push eax
call fcn.004224e0
mov byte [ebp - 0x71d], 1
mov byte [ebp - 4], 7
test ebx, ebx
je 0x422311
push ebx
call fcn.0049da8e
add esp, 4
jmp 0x422311
mov eax, dword [0x5159f8]
mov ecx, 0x5159f8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x718], eax
mov eax, str.RSA_public_decrypt_
mov byte [ebp - 4], 0x10
test eax, 0xffff0000
jne 0x4221a7
movzx edi, ax
push 0
push edi
call fcn.00403010
add esp, 8
test eax, eax
je 0x4221b9
push edi
push eax
lea ecx, [ebp - 0x718]
call fcn.00406b10
jmp 0x4221b9
push 0x13
push str.RSA_public_decrypt_
lea ecx, [ebp - 0x718]
call fcn.00408ed0
mov eax, dword [0x5159f8]
mov ecx, 0x5159f8
mov byte [ebp - 4], 0x11
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x724], eax
lea eax, [ebp - 0x718]
push eax
lea eax, [ebp - 0x724]
push eax
lea eax, [ebp - 0x71c]
push eax
mov byte [ebp - 4], 0x12
call fcn.0042fa40
add esp, 0xc
mov edx, dword [eax]
mov ecx, dword [ebp - 0x728]
add ecx, 0xfffffff0
lea edi, [edx - 0x10]
mov byte [ebp - 4], 0x13
mov dword [ebp - 0x730], ecx
cmp edi, ecx
je 0x422276
cmp dword [ecx + 0xc], 0
lea eax, [ecx + 0xc]
mov dword [ebp - 0x734], eax
jl 0x422267
mov eax, dword [edi]
cmp eax, dword [ecx]
jne 0x422267
push edi
call fcn.00404f90
mov ecx, dword [ebp - 0x734]
or edi, 0xffffffff
mov dword [ebp - 0x744], eax
add esp, 4
mov eax, edi
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x422256
mov eax, dword [ebp - 0x730]
push eax
mov ecx, dword [eax]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x744]
add eax, 0x10
mov dword [ebp - 0x728], eax
jmp 0x422279
push dword [edx - 0xc]
lea ecx, [ebp - 0x728]
push edx
call fcn.00408ed0
or edi, 0xffffffff
mov edx, dword [ebp - 0x71c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x12
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42229c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x724]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x11
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4222bf
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x718]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xb
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4222e2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x758]
lea eax, [ebp - 0x728]
push eax
call fcn.004224e0
mov byte [ebp - 0x71d], 1
mov byte [ebp - 4], 7
test ebx, ebx
je 0x422311
push ebx
call fcn.0049da8e
add esp, 4
jmp 0x422311
or edi, 0xffffffff
call fcn.00422b30
mov ecx, dword [sym.imp.KERNEL32.dll_GetFileType]
test al, al
jne 0x42232a
push 0
call ecx
mov ecx, dword [sym.imp.KERNEL32.dll_GetFileType]
cmp byte [ebp - 0x71d], 0
je 0x42234b
mov eax, dword [ebp - 0x73c]
mov ecx, dword [ebp - 0x738]
push dword [eax]
call fcn.00402750
jmp 0x421cb3
mov eax, dword [0x517280]
imul eax, eax
cdq
mov dword [ebp - 0x73c], 0x18
idiv dword [ebp - 0x73c]
mov ebx, dword [ebp - 0x74c]
sub ebx, dword [ebp - 0x750]
cmp edx, 0xb
jne 0x422379
push 0
call ecx
lea eax, [ebx + 2]
push eax
lea ecx, [ebp - 0x750]
call fcn.0041f370
mov ecx, dword [ebp - 0x750]
mov eax, dword [ebp - 0x74c]
mov word [ecx + ebx], 0
sub eax, ecx
je 0x422462
mov eax, dword [0x5159f8]
mov ecx, 0x5159f8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x724], eax
push dword [ebp - 0x750]
lea ecx, [ebp - 0x724]
mov byte [ebp - 4], 0x14
call fcn.00402750
mov ebx, dword [ebp - 0x738]
mov eax, dword [ebp - 0x724]
mov ebx, dword [ebx]
lea edx, [eax - 0x10]
sub ebx, 0x10
mov byte [ebp - 4], 0x15
mov dword [ebp - 0x71c], edx
cmp edx, ebx
je 0x422448
cmp dword [ebx + 0xc], 0
jl 0x422433
mov ecx, dword [edx]
cmp ecx, dword [ebx]
jne 0x422433
push edx
call fcn.00404f90
mov dword [ebp - 0x73c], eax
add esp, 4
mov eax, edi
lea ecx, [ebx + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x422420
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x73c]
mov ecx, dword [ebp - 0x738]
add eax, 0x10
mov dword [ecx], eax
jmp 0x422442
push dword [eax - 0xc]
mov ecx, dword [ebp - 0x738]
push eax
call fcn.00408ed0
mov edx, dword [ebp - 0x71c]
mov byte [ebp - 4], 7
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x422462
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x738]
push eax
push eax
call fcn.00447350
mov eax, dword [0x517280]
imul eax, eax
add esp, 8
and eax, 0x8000000f
jns 0x422486
dec eax
or eax, 0xfffffff0
inc eax
cmp eax, 0xb
jne 0x42249b
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetMailslotInfo]
mov eax, dword [ebp - 0x768]
mov bl, 1
test eax, eax
je 0x4224b0
push eax
call fcn.0049da8e
add esp, 4
add esi, 0xfffffff0
mov byte [ebp - 4], 1
lea eax, [esi + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x421aa5
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x421aa5