Function at 0x40b010
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4922c8
mov eax, dword fs:[0]
push eax
sub esp, 0x278
mov eax, dword [0x4c100c]
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 dword [ebp - 0x244], edx
mov edi, ecx
mov dword [ebp - 0x248], edi
mov eax, dword [ebp + 8]
xorps xmm0, xmm0
mov dword [ebp - 0x268], edi
mov dword [ebp - 0x224], 0
movups xmmword [ebp - 0x220], xmm0
mov dword [ebp - 4], 1
mov dword [ebp - method.CWString.virtual_0], vtable.CVolCommonBaseWithMemManager.0
mov dword [ebp - method.CWString.virtual_0], vtable.CVolObject.0
mov dword [ebp - 0x23c], 0
mov dword [ebp - 0x238], 0
mov byte [ebp - 4], 2
mov dword [ebp - method.CWString.virtual_0], vtable.CVolMem.0
mov dword [ebp - 0x234], 0
mov dword [ebp - 0x22c], 0
mov dword [ebp - 0x230], 0
mov dword [ebp - 0x228], 0x40
mov byte [ebp - 4], 3
mov ebx, dword [eax + 0x14]
test ebx, ebx
je 0x40b402
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x248], eax
lea eax, [ebx - 1]
cmp eax, 0xff
ja 0x40b402
push ebx
call fcn.00477917
push ebx
mov esi, eax
push 0
push esi
mov dword [ebp - 0x220], esi
call fcn.00479200
push ebx
push dword [ebp - 0x248]
push esi
call fcn.00478c80
mov eax, dword [ebp - 0x234]
add esp, 0x1c
mov dword [ebp - 0x21c], ebx
mov ebx, dword [ebp - 0x244]
mov ebx, dword [ebx + 0x14]
test eax, eax
je 0x40b148
push ebx
lea ecx, [ebp - 0x240]
call fcn.00446eb0
mov eax, dword [ebp - 0x234]
jmp 0x40b1a3
test ebx, ebx
je 0x40b1a3
mov esi, dword [ebp - 0x228]
mov eax, 0x40
test esi, esi
cmovle esi, eax
mov eax, ebx
cdq
idiv esi
mov eax, dword [ebp - 0x240]
sub esi, edx
add esi, ebx
push esi
mov eax, dword [eax]
cmp eax, method.CWString.virtual_0
jne 0x40b189
mov ecx, 0x4c51a8
call fcn.004479b0
test eax, eax
je 0x40b4ab
jmp 0x40b191
lea ecx, [ebp - 0x240]
call eax
mov dword [ebp - 0x234], eax
mov dword [ebp - 0x230], esi
mov dword [ebp - 0x22c], ebx
push dword [ebp - 0x22c]
push 0
push eax
call fcn.00479200
mov edx, dword [ebp - 0x22c]
xor eax, eax
mov ecx, dword [ebp - 0x234]
add esp, 0xc
test edx, edx
cmove ecx, eax
mov eax, dword [ebp - 0x244]
mov esi, dword [eax + 0x14]
test esi, esi
jne 0x40b1d8
xor eax, eax
jmp 0x40b1db
mov eax, dword [eax + 0xc]
push edx
push ecx
push esi
push eax
lea ecx, [ebp - 0x220]
call sym.__.exe_public:_bool___thiscall_CRC4::DecryptData_unsigned_char___int__unsigned_char___int_
test al, al
je 0x40b20b
lea eax, [ebp - 0x240]
push eax
lea ecx, [ebp - 0x284]
call fcn.00405830
mov byte [ebp - 4], 5
mov ebx, 2
jmp 0x40b282
mov dword [ebp - method.CWString.virtual_0], vtable.CVolCommonBaseWithMemManager.0
mov dword [ebp - method.CWString.virtual_0], vtable.CVolObject.0
mov dword [ebp - 0x260], 0
mov dword [ebp - 0x25c], 0
mov dword [ebp - 4], 6
mov dword [ebp - method.CWString.virtual_0], vtable.CVolMem.0
mov dword [ebp - 0x258], 0
mov dword [ebp - 0x250], 0
mov dword [ebp - 0x254], 0
mov dword [ebp - 0x24c], 0x40
mov byte [ebp - 4], 5
lea eax, [ebp - 0x264]
mov dword [ebp - 4], 7
mov ebx, 4
push eax
mov ecx, edi
mov dword [ebp - 0x224], ebx
call fcn.00405830
or ebx, 1
mov dword [ebp - 0x224], ebx
mov dword [ebp - 4], 5
test bl, 4
je 0x40b31a
and ebx, 0xfffffffb
mov dword [ebp - 0x224], ebx
mov dword [ebp - method.CWString.virtual_0], vtable.CVolMem.0
mov dword [ebp - 4], 8
mov ecx, dword [ebp - 0x258]
test ecx, ecx
je 0x40b2ee
mov eax, dword [ebp - 0x264]
push ecx
mov eax, dword [eax + 0xc]
cmp eax, method.CWString.virtual_12
jne 0x40b2e6
mov ecx, 0x4c51a8
call fcn.00447aa0
jmp 0x40b2ee
lea ecx, [ebp - 0x264]
call eax
mov dword [ebp - 0x258], 0
mov dword [ebp - 0x250], 0
mov dword [ebp - 0x254], 0
mov byte [ebp - 4], 5
mov dword [ebp - method.CWString.virtual_0], vtable.CVolObject.0
mov dword [ebp - 4], 3
test bl, 2
je 0x40b33a
and ebx, 0xfffffffd
lea ecx, [ebp - 0x284]
mov dword [ebp - 0x224], ebx
call fcn.00405de0
mov byte [ebp - 4], 1
mov dword [ebp - method.CWString.virtual_0], vtable.CVolMem.0
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x234]
test edx, edx
je 0x40b37b
mov eax, dword [ebp - 0x240]
push edx
mov eax, dword [eax + 0xc]
cmp eax, method.CWString.virtual_12
jne 0x40b373
mov ecx, 0x4c51a8
call fcn.00447aa0
jmp 0x40b37b
lea ecx, [ebp - 0x240]
call eax
mov dword [ebp - 0x234], 0
mov dword [ebp - 0x22c], 0
mov dword [ebp - 0x230], 0
mov byte [ebp - 4], 1
mov dword [ebp - method.CWString.virtual_0], vtable.CVolObject.0
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x220]
test eax, eax
je 0x40b3d2
push eax
call fcn.00477920
add esp, 4
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0
mov eax, dword [ebp - 0x218]
test eax, eax
je 0x40b48b
push eax
call fcn.00477920
add esp, 4
mov dword [ebp - 0x218], 0
mov dword [ebp - 0x214], 0
jmp 0x40b48b
lea eax, [ebp - 0x240]
mov ecx, edi
push eax
call fcn.00405830
mov dword [ebp - 0x224], 1
mov byte [ebp - 4], 1
mov dword [ebp - method.CWString.virtual_0], vtable.CVolMem.0
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x234]
test ecx, ecx
je 0x40b45b
mov eax, dword [ebp - 0x240]
push ecx
mov eax, dword [eax + 0xc]
cmp eax, method.CWString.virtual_12
jne 0x40b453
mov ecx, 0x4c51a8
call fcn.00447aa0
jmp 0x40b45b
lea ecx, [ebp - 0x240]
call eax
mov dword [ebp - 0x234], 0
mov dword [ebp - 0x22c], 0
mov dword [ebp - 0x230], 0
mov byte [ebp - 4], 1
mov dword [ebp - method.CWString.virtual_0], vtable.CVolObject.0
mov byte [ebp - 4], 0
mov eax, edi
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.00477369
mov esp, ebp
pop ebp
ret 4
push 0xffffffffffffffff
call fcn.0047b870
int3