Function at 0x47a6e0
Capabilities:
Get disk size

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x515cb2
mov eax, dword fs:[0]
push eax
mov eax, 0x39e4
call fcn.004f2220
mov eax, dword [0x577680]
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 - 0x39b8], ebx
mov edi, dword [ebp + 8]
push 0x534550
mov ecx, edi
mov dword [ebp - 0x39bc], edi
call fcn.00470d60
mov ecx, eax
call fcn.00472000
test al, al
jne 0x47a845
mov esi, dword [0x578ad4]
mov eax, esi
imul eax, esi
cdq
mov ecx, 0x15
idiv ecx
cmp edx, 0xe
jne 0x47a77a
push 0
push 0
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateFileW]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
mov esi, dword [0x578ad4]
call fcn.00493cc0
test al, al
jne 0x47a7a8
xor edi, edi
test esi, esi
je 0x47a7a2
lea esp, [esp]
mov eax, esi
mov ecx, esi
cdq
sub eax, edx
and ecx, 1
mov esi, eax
add edi, ecx
sar esi, 1
jne 0x47a790
mov dword [0x578ad4], edi
mov eax, dword [0x5771f0]
mov ecx, 0x5771f0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x39a8], eax
mov eax, str.add_is_ext_block_doesnt_exist
mov dword [ebp - 4], 0
test eax, 0xffff0000
jne 0x47a7f2
movzx esi, ax
push 0
push esi
call fcn.00403070
add esp, 8
test eax, eax
je 0x47a802
push esi
push eax
lea ecx, [ebp - 0x39a8]
call fcn.00408b00
jmp 0x47a802
push str.add_is_ext_block_doesnt_exist
lea ecx, [ebp - 0x39a8]
call fcn.004027b0
lea eax, [ebp - 0x39a8]
push eax
mov ecx, ebx
mov dword [ebp - 4], 1
call fcn.0040c040
mov edx, dword [ebp - 0x39a8]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47a83e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor al, al
jmp 0x47b4b4
push str.install_signature
push 0x534550
mov ecx, edi
call fcn.00470d60
mov ecx, eax
call fcn.00470d60
mov ecx, eax
call fcn.00472000
test al, al
jne 0x47a86f
mov al, 1
jmp 0x47b4b4
mov dword [ebp - 0x39c8], 0
mov dword [ebp - 0x39c4], 0
mov dword [ebp - 0x39c0], 0
lea eax, [ebx + 0xac]
push eax
lea ecx, [ebp - 0x39c8]
mov dword [ebp - 4], 2
mov dword [ebp - 0x39cc], eax
call fcn.00416fa0
mov esi, dword [0x578ad4]
mov eax, esi
imul eax, esi
cdq
mov ecx, 0x18
idiv ecx
cmp edx, 0xf
jne 0x47a902
xor ecx, ecx
jmp 0x47a8d0
mov eax, dword [ebp + ecx*4 - 0x3938]
add eax, dword [ebp + ecx*4 - 0x393c]
add ecx, 4
add eax, dword [ebp + ecx*4 - 0x3950]
add eax, dword [ebp + ecx*4 - 0x3954]
imul eax, eax, 0x4a
add esi, eax
cmp ecx, 0x1f0
jb 0x47a8d0
mov dword [0x578ad4], esi
push 0x5359d0
push str.install_signature
push 0x534550
mov ecx, edi
call fcn.00470d60
mov ecx, eax
call fcn.00470d60
mov ecx, eax
call fcn.00470d60
mov ecx, eax
call fcn.00471f10
test al, al
je 0x47abc1
push 0x5359d0
push str.install_signature
push 0x534550
mov ecx, edi
xor ebx, ebx
call fcn.00470d60
mov ecx, eax
call fcn.00470d60
mov ecx, eax
call fcn.00470d60
mov ecx, eax
call fcn.00472560
test eax, eax
jle 0x47abbb
lea ebx, [ebx]
push ebx
push 0x5359d0
push str.install_signature
push 0x534550
mov ecx, edi
call fcn.00470d60
mov ecx, eax
call fcn.00470d60
mov ecx, eax
call fcn.00470d60
mov ecx, eax
call fcn.00470c20
mov esi, eax
mov ecx, esi
call fcn.00472030
test al, al
je 0x47ab11
push dword [ebp - 0x39cc]
mov ecx, esi
call fcn.00471820
push eax
call fcn.0047a160
add esp, 8
test al, al
jne 0x47ac15
mov ecx, esi
call fcn.00471820
mov edx, dword [0x5771f0]
mov ecx, 0x5771f0
mov esi, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x39a8], eax
mov byte [ebp - 4], 3
test esi, esi
je 0x47aa1c
test esi, 0xffff0000
jne 0x47aa1c
movzx esi, si
push 0
push esi
call fcn.00403070
add esp, 8
test eax, eax
je 0x47aa28
push esi
push eax
lea ecx, [ebp - 0x39a8]
call fcn.00408b00
jmp 0x47aa28
push esi
lea ecx, [ebp - 0x39a8]
call fcn.004027b0
lea eax, [ebp - 0x39a8]
push eax
lea ecx, [ebp - 0x39c8]
mov byte [ebp - 4], 4
call fcn.00416fa0
mov edx, dword [ebp - 0x39a8]
add edx, 0xfffffff0
mov byte [ebp - 4], 2
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47aa62
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00493cf0
test al, al
jne 0x47aa8c
mov eax, dword [0x578ad4]
xor esi, esi
test eax, eax
je 0x47aa84
mov ecx, eax
cdq
and ecx, 1
sub eax, edx
add esi, ecx
sar eax, 1
jne 0x47aa76
mov dword [0x578ad4], esi
jmp 0x47aa92
mov esi, dword [0x578ad4]
call fcn.00493990
test al, al
jne 0x47ab17
xor eax, eax
push 0x186
push eax
mov word [ebp - 0x38dc], ax
lea eax, [ebp - 0x38da]
push eax
call fcn.004f2250
add esp, 0xc
xor edi, edi
xor esi, esi
lea ecx, [ecx]
xor edx, edx
test edi, edi
je 0x47aaea
test edx, edx
je 0x47aaea
lea eax, [esi + edx]
lea ecx, [esi + edx]
mov ax, word [ebp + eax*2 - 0x38f8]
inc ax
add ax, word [ebp + ecx*2 - 0x38de]
mov word [ebp + ecx*2 - 0x38dc], ax
inc edx
cmp edx, 0xe
jl 0x47aac2
add esi, 0xe
inc edi
cmp esi, 0xc4
jl 0x47aac0
movsx esi, word [ebp - 0x3756]
mov edi, dword [ebp - 0x39bc]
mov dword [0x578ad4], esi
jmp 0x47ab17
mov esi, dword [0x578ad4]
call fcn.00493cc0
test al, al
jne 0x47ab87
mov eax, 0x891ac73b
imul esi
add edx, esi
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, ecx, 0xef
mov eax, esi
sub eax, ecx
xor edi, edi
cmp eax, 0xa3
je 0x47ab7b
mov eax, esi
or eax, 0xffffffa8
add esi, eax
mov eax, esi
imul eax, esi
inc edi
cmp edi, eax
jg 0x47ab7b
mov eax, 0x891ac73b
imul esi
add edx, esi
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, ecx, 0xef
mov eax, esi
sub eax, ecx
cmp eax, 0xa3
jne 0x47ab46
mov dword [0x578ad4], edi
mov edi, dword [ebp - 0x39bc]
push 0x5359d0
push str.install_signature
push 0x534550
mov ecx, edi
inc ebx
call fcn.00470d60
mov ecx, eax
call fcn.00470d60
mov ecx, eax
call fcn.00470d60
mov ecx, eax
call fcn.00472560
cmp ebx, eax
jl 0x47a970
mov ebx, dword [ebp - 0x39b8]
lea eax, [ebp - 0x3974]
push eax
call fcn.00499f20
add esp, 4
cmp dword [ebp - 0x3964], 0
mov byte [ebp - 4], 5
jne 0x47ad66
call fcn.00493930
test al, al
jne 0x47aca3
mov esi, 1
mov eax, esi
mov ecx, 0xb0
lea ebx, [ebx]
dec ecx
lea edx, [eax + esi]
lea esi, [eax]
mov eax, edx
jns 0x47ac00
mov dword [0x578ad4], edx
jmp 0x47aca9
call fcn.004939c0
test al, al
jne 0x47ac81
mov esi, dword [0x578ad4]
mov eax, 0x1b4e81b5
imul esi
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, ecx, 0x96
mov eax, esi
sub eax, ecx
xor edi, edi
cmp eax, 0xdc
je 0x47ac7b
mov eax, esi
or eax, 0xffffff82
add esi, eax
mov eax, esi
imul eax, esi
inc edi
cmp edi, eax
jg 0x47ac7b
mov eax, 0x1b4e81b5
imul esi
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, ecx, 0x96
mov eax, esi
sub eax, ecx
cmp eax, 0xdc
jne 0x47ac48
mov dword [0x578ad4], edi
call fcn.00493990
mov ecx, dword [0x57a1c0]
mov edx, 0x1450a779
test al, al
cmove ecx, edx
mov dword [0x57a1c0], ecx
mov bl, 1
jmp 0x47b461
mov edx, dword [0x578ad4]
lea ecx, [edx + 1]
lea eax, [edx + 2]
imul eax, ecx
imul eax, edx
cdq
mov ecx, 0x18
idiv ecx
cmp edx, 9
jne 0x47acd2
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
mov eax, dword [0x5771f0]
mov ecx, 0x5771f0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x39a8], eax
mov eax, str.failed_to_create_salt
mov byte [ebp - 4], 6
test eax, 0xffff0000
jne 0x47ad19
movzx esi, ax
push 0
push esi
call fcn.00403070
add esp, 8
test eax, eax
je 0x47ad29
push esi
push eax
lea ecx, [ebp - 0x39a8]
call fcn.00408b00
jmp 0x47ad29
push str.failed_to_create_salt
lea ecx, [ebp - 0x39a8]
call fcn.004027b0
lea eax, [ebp - 0x39a8]
push eax
mov ecx, ebx
mov byte [ebp - 4], 7
call fcn.0040c040
mov edx, dword [ebp - 0x39a8]
add edx, 0xfffffff0
mov byte [ebp - 4], 5
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47ad5f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor bl, bl
jmp 0x47b42f
sub esp, 0x18
mov ecx, esp
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x3974]
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
push eax
mov byte [ecx], 0
call fcn.004012f0
lea eax, [ebp - 0x39c8]
push eax
lea eax, [ebp - 0x398c]
push eax
call fcn.00498cb0
add esp, 0x20
cmp dword [ebp - 0x397c], 0
mov eax, dword [0x5771f0]
mov byte [ebp - 4], 8
mov ecx, 0x5771f0
jne 0x47ae6d
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x39a8], eax
mov eax, str.failed_to_get_post_sign_data
mov byte [ebp - 4], 9
test eax, 0xffff0000
jne 0x47adfa
movzx esi, ax
push 0
push esi
call fcn.00403070
add esp, 8
test eax, eax
je 0x47ae0a
push esi
push eax
lea ecx, [ebp - 0x39a8]
call fcn.00408b00
jmp 0x47ae0a
push str.failed_to_get_post_sign_data
lea ecx, [ebp - 0x39a8]
call fcn.004027b0
lea eax, [ebp - 0x39a8]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0xa
call fcn.0040c040
mov edx, dword [ebp - 0x39a8]
add edx, 0xfffffff0
mov byte [ebp - 4], 8
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47ae40
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [0x578ad4]
mov edi, 9
lea ecx, [esi + 1]
lea eax, [esi + 2]
imul eax, ecx
imul eax, esi
cdq
idiv edi
cmp edx, 4
cmove esi, ecx
mov dword [0x578ad4], esi
xor bl, bl
jmp 0x47b3fd
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x39b0], eax
mov eax, dword [0x5771f0]
mov ecx, 0x5771f0
mov byte [ebp - 4], 0xb
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x39ac], eax
lea eax, [ebp - 0x39ac]
push eax
lea eax, [ebp - 0x39b0]
push eax
sub esp, 0x18
mov ecx, esp
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x398c]
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
push eax
mov byte [ebp - 4], 0xc
mov byte [ecx], 0
call fcn.004012f0
mov ecx, ebx
call fcn.0048ce40
test al, al
jne 0x47aedd
xor bl, bl
jmp 0x47b3b5
lea eax, [ebp - 0x39b0]
push eax
push eax
call fcn.004155c0
mov edx, dword [0x578ad4]
add esp, 8
lea ecx, [edx + 1]
lea eax, [edx + 2]
imul eax, ecx
imul eax, edx
cdq
mov ecx, 0x12
idiv ecx
cmp edx, 5
jne 0x47af78
xor eax, eax
push 0x3340
push eax
mov word [ebp - 0x3754], ax
lea eax, [ebp - 0x3752]
push eax
call fcn.004f2250
add esp, 0xc
xor edi, edi
xor esi, esi
mov edi, edi
xor edx, edx
test edi, edi
je 0x47af5a
test edx, edx
je 0x47af5a
lea eax, [edx + esi]
lea ecx, [edx + esi]
mov ax, word [ebp + eax*2 - 0x37f6]
inc ax
add ax, word [ebp + ecx*2 - 0x3756]
mov word [ebp + ecx*2 - 0x3754], ax
inc edx
cmp edx, 0x51
jl 0x47af32
add esi, 0x51
inc edi
cmp esi, 0x19a1
jl 0x47af30
movsx eax, word [ebp - 0x414]
mov dword [0x578ad4], eax
lea eax, [ebp - 0x39ac]
push eax
push eax
call fcn.004155c0
mov ecx, dword [0x578ad4]
push 0x3ff
lea eax, [ecx + 1]
imul eax, ecx
cdq
mov ecx, 0xf
idiv ecx
mov eax, dword [0x57a1e0]
mov ecx, 0xe4240a8d
push 0
mov byte [ebp - 0x410], 0
cmp edx, 7
cmove eax, ecx
mov dword [0x57a1e0], eax
lea eax, [ebp - 0x40f]
push eax
call fcn.004f2250
add esp, 0x14
mov dword [ebp - 0x39e0], 0
call fcn.00493b60
test al, al
jne 0x47afe4
dec dword [0x579dec]
cmp dword [ebp - 0x3960], 0x10
lea ecx, [ebp - 0x39e0]
push ecx
push 0x400
lea ecx, [ebp - 0x410]
push ecx
push dword [ebp - 0x3964]
lea eax, [ebp - 0x3974]
cmovae eax, dword [ebp - 0x3974]
push eax
call fcn.00411e00
mov esi, dword [0x578ad4]
mov eax, esi
imul eax, esi
cdq
mov ecx, 0x15
idiv ecx
add esp, 0x14
cmp edx, 0x13
jne 0x47b06a
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, ecx, 0x64
sub esi, ecx
xor ecx, ecx
lea eax, [esi + 0x63]
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004ef820
push eax
call fcn.004f0683
add esp, 8
mov eax, dword [ebp - 0x39cc]
mov eax, dword [eax]
sub eax, 0x10
push eax
call fcn.004056f0
add eax, 0x10
mov dword [ebp - 0x39b4], eax
lea eax, [ebp - 0x39b4]
push eax
push eax
mov byte [ebp - 4], 0xd
call fcn.004155c0
lea eax, [ebp - 0x39b4]
push eax
lea eax, [ebp - 0x39a4]
push eax
call fcn.0049acd0
add esp, 0x14
push eax
lea ecx, [ebp - 0x39f0]
mov byte [ebp - 4], 0xe
call fcn.004706a0
cmp dword [ebp - 0x3990], 0x10
mov byte [ebp - 4], 0x10
jb 0x47b0d6
push dword [ebp - 0x39a4]
call fcn.004f03fe
add esp, 4
lea eax, [ebp - 0x39b0]
push eax
lea eax, [ebp - 0x395c]
push eax
mov dword [ebp - 0x3990], 0xf
mov dword [ebp - 0x3994], 0
mov byte [ebp - 0x39a4], 0
call fcn.0049acd0
add esp, 8
push eax
lea ecx, [ebp - 0x39dc]
mov byte [ebp - 4], 0x11
call fcn.004706a0
mov esi, dword [ebp - 0x39bc]
lea eax, [ebp - 0x39dc]
push eax
push str.expire_date
push str.install_signature
push 0x534550
mov ecx, esi
mov byte [ebp - 4], 0x12
call fcn.00470d60
mov ecx, eax
call fcn.00470d60
mov ecx, eax
call fcn.00470d60
mov ecx, eax
call fcn.00470b70
lea ecx, [ebp - 0x39dc]
mov byte [ebp - 4], 0x11
call fcn.00470ad0
cmp dword [ebp - 0x3948], 0x10
mov byte [ebp - 4], 0x10
jb 0x47b17d
push dword [ebp - 0x395c]
call fcn.004f03fe
add esp, 4
lea eax, [ebp - 0x39f0]
push eax
push 0x5359d0
push str.install_signature
push 0x534550
mov ecx, esi
call fcn.00470d60
mov ecx, eax
call fcn.00470d60
mov ecx, eax
call fcn.00470d60
mov ecx, eax
call fcn.00471370
call fcn.00493960
test al, al
jne 0x47b210
movd xmm4, dword [0x578ad4]
movsd xmm3, qword [0x52a190]
movsd xmm6, qword [0x52a198]
movsd xmm5, qword [0x52a188]
xorps xmm2, xmm2
cvtdq2pd xmm4, xmm4
nop
addsd xmm2, xmm3
movapd xmm0, xmm2
mulsd xmm0, xmm2
comisd xmm0, xmm4
jbe 0x47b1fa
subsd xmm2, xmm3
divsd xmm3, xmm6
movapd xmm1, xmm2
mulsd xmm1, xmm2
movapd xmm0, xmm4
subsd xmm0, xmm1
comisd xmm0, xmm5
ja 0x47b1e0
cmp byte [ebp - 0x410], 0
mov dword [ebp - 0x3948], 0xf
mov dword [ebp - 0x394c], 0
mov byte [ebp - 0x395c], 0
jne 0x47b238
xor ecx, ecx
jmp 0x47b24a
lea ecx, [ebp - 0x410]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x47b241
sub ecx, edx
push ecx
lea eax, [ebp - 0x410]
push eax
lea ecx, [ebp - 0x395c]
call fcn.00401420
lea eax, [ebp - 0x395c]
push eax
lea ecx, [ebp - 0x39dc]
mov byte [ebp - 4], 0x13
call fcn.004706a0
lea eax, [ebp - 0x39dc]
push eax
push str.salt
push str.install_signature
push 0x534550
mov ecx, esi
mov byte [ebp - 4], 0x14
call fcn.00470d60
mov ecx, eax
call fcn.00470d60
mov ecx, eax
call fcn.00470d60
mov ecx, eax
call fcn.00470b70
lea ecx, [ebp - 0x39dc]
mov byte [ebp - 4], 0x13
call fcn.00470ad0
cmp dword [ebp - 0x3948], 0x10
mov byte [ebp - 4], 0x10
jb 0x47b2d3
push dword [ebp - 0x395c]
call fcn.004f03fe
add esp, 4
lea eax, [ebp - 0x39ac]
push eax
lea eax, [ebp - 0x395c]
push eax
call fcn.0049acd0
add esp, 8
push eax
lea ecx, [ebp - 0x39dc]
mov byte [ebp - 4], 0x15
call fcn.004706a0
lea eax, [ebp - 0x39dc]
push eax
push str.signature
push str.install_signature
push 0x534550
mov ecx, esi
mov byte [ebp - 4], 0x16
call fcn.00470d60
mov ecx, eax
call fcn.00470d60
mov ecx, eax
call fcn.00470d60
mov ecx, eax
call fcn.00470b70
lea ecx, [ebp - 0x39dc]
mov byte [ebp - 4], 0x15
call fcn.00470ad0
cmp dword [ebp - 0x3948], 0x10
jb 0x47b355
push dword [ebp - 0x395c]
call fcn.004f03fe
add esp, 4
call fcn.004938d0
test al, al
jne 0x47b380
mov esi, 1
mov eax, esi
mov edx, 0x5c
lea ebx, [ebx]
dec edx
lea ecx, [eax + esi]
lea esi, [eax]
mov eax, ecx
jns 0x47b370
mov dword [0x578ad4], ecx
lea ecx, [ebp - 0x39f0]
mov bl, 1
mov byte [ebp - 4], 0xd
call fcn.00470ad0
mov edx, dword [ebp - 0x39b4]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xc
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47b3b5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x39ac]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xb
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47b3d9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x39b0]
add edx, 0xfffffff0
mov byte [ebp - 4], 8
lea eax, [edx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47b3fd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x3978], 0x10
jb 0x47b414
push dword [ebp - 0x398c]
call fcn.004f03fe
add esp, 4
mov dword [ebp - 0x3978], 0xf
mov dword [ebp - 0x397c], 0
mov byte [ebp - 0x398c], 0
cmp dword [ebp - 0x3960], 0x10
jb 0x47b446
push dword [ebp - 0x3974]
call fcn.004f03fe
add esp, 4
mov dword [ebp - 0x3960], 0xf
mov dword [ebp - 0x3964], 0
mov byte [ebp - 0x3974], 0
mov esi, dword [ebp - 0x39c8]
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x47b4b2
mov edi, dword [ebp - 0x39c4]
cmp esi, edi
je 0x47b4a9
lea esp, [esp]
mov edx, dword [esi]
sub edx, 0x10
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47b49c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 4
cmp esi, edi
jne 0x47b480
mov esi, dword [ebp - 0x39c8]
push esi
call fcn.004f03fe
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.004f0cd4
mov esp, ebp
pop ebp
ret 4