Function at 0x40aa40
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4921e4
mov eax, dword fs:[0]
push eax
sub esp, 0xfc
push ebx
push esi
push edi
mov eax, dword [0x4c100c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, edx
mov ebx, ecx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x44], vtable.CVolCommonBaseWithMemManager.0
mov dword [ebp - 0x44], vtable.CVolObject.0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 4], 1
mov dword [ebp - 0x44], vtable.CVolMem.0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x2c], 0x40
mov dword [ebp - 4], 2
lea ecx, [ebp - 0xb0]
call fcn.00407f70
mov byte [ebp - 4], 3
mov dword [ebp - 0x28], vtable.CVolCommonBaseWithMemManager.0
mov dword [ebp - 0x28], vtable.CVolObject.0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov byte [ebp - 4], 4
mov dword [ebp - 0x28], vtable.CVolMem.0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x10], 0x40
mov byte [ebp - 4], 5
sub esp, 8
mov edx, dword [ebp + 8]
lea ecx, [ebp - 0xdc]
push 0
call fcn.0040a520
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x108]
push 9
push 2
push ecx
mov ecx, eax
call fcn.00449950
mov esi, eax
mov byte [ebp - 4], 7
lea eax, [ebp - 0x80]
push 9
push eax
mov ecx, edi
call fcn.004497b0
mov byte [ebp - 4], 8
mov ecx, eax
push esi
call fcn.0040efa0
mov esi, eax
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x80]
call fcn.00405340
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x108]
call fcn.00405340
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xdc]
call fcn.00405340
test esi, esi
je 0x40aca3
mov ecx, ebx
call fcn.00405e70
mov byte [ebp - 4], 9
mov dword [ebx], vtable.CWString.0
cmp word [0x4a49e4], 0
je 0x40ac0f
mov ecx, ebx
call fcn.00448aa0
mov edx, eax
mov eax, dword [edx + 0x14]
cmp eax, 2
jb 0x40abd7
mov ecx, dword [edx + 0xc]
movzx ecx, word [ecx + eax - 2]
test cx, cx
jne 0x40abd7
add eax, 0xfffffffe
mov dword [edx + 0x14], eax
mov eax, dword [ebx + 0x20]
mov esi, dword [ebx + 0x24]
sub eax, esi
cmp eax, 2
jl 0x40abf8
mov eax, dword [ebx + 0x1c]
movzx ecx, word [0x4a49e4]
mov word [esi + eax], cx
add dword [ebx + 0x24], 2
jmp 0x40ac0f
lea eax, [esi + 2]
push eax
lea ecx, [ebx + 0x10]
call fcn.00446eb0
mov cx, word [0x4a49e4]
mov word [eax + esi], cx
mov byte [ebp - 4], 5
mov dword [ebp - 0x4c], 1
mov byte [ebp - 4], 3
mov dword [ebp - 0x28], vtable.CVolMem.0
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x40ac4f
mov eax, dword [ebp - 0x28]
push ecx
mov eax, dword [eax + 0xc]
cmp eax, method.CWString.virtual_12
jne 0x40ac4a
mov ecx, 0x4c51a8
call fcn.00447aa0
jmp 0x40ac4f
lea ecx, [ebp - 0x28]
call eax
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
mov byte [ebp - 4], 3
mov dword [ebp - 0x28], vtable.CVolObject.0
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0xa4]
call fcn.00408030
mov byte [ebp - 4], 2
mov dword [ebp - 0xb0], vtable.CVolObject.0
mov byte [ebp - 4], 0
mov dword [ebp - 0x44], vtable.CVolMem.0
mov dword [ebp - 4], 0xe
jmp 0x40afa6
mov dword [ebp - 0x70], vtable.CVolCommonBaseWithMemManager.0
mov dword [ebp - 0x70], vtable.CVolObject.0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0
mov byte [ebp - 4], 0xf
mov dword [ebp - 0x70], vtable.CVolMem.0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x58], 0x40
mov byte [ebp - 4], 0x10
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x40ad05
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40acf4
sub ecx, edx
sar ecx, 1
jmp 0x40ad0f
mov ecx, dword [edi + 0x24]
test ecx, ecx
je 0x40ad0f
shr ecx, 1
dec ecx
lea eax, [ecx - 9]
mov ecx, edi
push eax
lea eax, [ebp - 0xdc]
push eax
call fcn.004495a0
mov byte [ebp - 4], 0x11
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x40ad39
cmp dword [eax + 0x24], ecx
mov ecx, 0x4a49e4
je 0x40ad39
mov ecx, dword [eax + 0x1c]
lea edx, [ebp - 0x70]
call fcn.0040eeb0
mov ecx, dword [ebp - 0x44]
mov esi, eax
mov edx, dword [ecx + 0x44]
cmp edx, fcn.00404f60
je 0x40ad56
lea ecx, [ebp - 0x44]
call edx
push esi
lea ecx, [ebp - 0x44]
call fcn.004059c0
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0xdc]
call fcn.00405340
mov byte [ebp - 4], 5
mov dword [ebp - 0x70], vtable.CVolMem.0
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x40ada3
mov eax, dword [ebp - 0x70]
push ecx
mov eax, dword [eax + 0xc]
cmp eax, method.CWString.virtual_12
jne 0x40ad9e
mov ecx, 0x4c51a8
call fcn.00447aa0
jmp 0x40ada3
lea ecx, [ebp - 0x70]
call eax
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x60], 0
mov byte [ebp - 4], 5
xor ecx, ecx
mov edx, dword [ebp - 0x30]
mov eax, edx
mov dword [ebp - 0x70], vtable.CVolObject.0
mov dword [ebp - 0x50], eax
test eax, eax
jle 0x40af11
mov edi, dword [ebp - 0x14]
lea esi, [ecx + 1]
mov dword [ebp - 0x48], esi
cmp esi, edx
jle 0x40ae15
sub edx, ecx
mov eax, 0
xorps xmm0, xmm0
cmovns eax, edx
movlpd qword [ebp - 0x88], xmm0
push eax
mov eax, dword [ebp - 0x38]
add eax, ecx
push eax
lea eax, [ebp - 0x88]
push eax
call fcn.00478c80
mov cl, byte [ebp - 0x88]
add esp, 0xc
jmp 0x40ae1b
mov eax, dword [ebp - 0x38]
mov cl, byte [eax + ecx]
mov edx, dword [ebp - 0x18]
xor cl, 0x10
mov eax, edx
mov byte [ebp + 0xb], cl
sub eax, edi
cmp eax, 1
jl 0x40ae3f
mov eax, dword [ebp - 0x1c]
mov byte [edi + eax], cl
mov edi, dword [ebp - 0x14]
inc edi
mov dword [ebp - 0x14], edi
jmp 0x40aeff
mov ecx, dword [ebp - 0x1c]
lea ebx, [edi + 1]
cmp ebx, edi
je 0x40aef6
test ebx, ebx
jne 0x40ae8d
test ecx, ecx
je 0x40ae74
mov eax, dword [ebp - 0x28]
push ecx
mov eax, dword [eax + 0xc]
cmp eax, method.CWString.virtual_12
jne 0x40ae6f
mov ecx, 0x4c51a8
call fcn.00447aa0
jmp 0x40ae74
lea ecx, [ebp - 0x28]
call eax
mov dword [ebp - 0x1c], 0
xor ecx, ecx
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
jmp 0x40aef6
test ecx, ecx
jne 0x40ae9e
push ebx
lea ecx, [ebp - 0x28]
call fcn.00446e50
mov ecx, eax
jmp 0x40aef6
mov esi, dword [ebp - 0x10]
mov eax, 0x40
test esi, esi
cmovle esi, eax
cmp edx, ebx
jl 0x40aeb5
sub edx, ebx
cmp edx, esi
jle 0x40aef0
mov eax, ebx
cdq
idiv esi
mov eax, dword [ebp - 0x28]
sub esi, edx
add esi, ebx
push esi
mov eax, dword [eax + 8]
push ecx
cmp eax, method.CWString.virtual_8
jne 0x40aee3
mov ecx, 0x4c51a8
call fcn.00447a10
mov ecx, eax
test ecx, ecx
je 0x40b002
jmp 0x40aeea
lea ecx, [ebp - 0x28]
call eax
mov ecx, eax
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], esi
mov esi, dword [ebp - 0x48]
mov dword [ebp - 0x14], ebx
mov al, byte [ebp + 0xb]
mov byte [ecx + edi], al
mov edi, dword [ebp - 0x14]
mov ecx, esi
cmp ecx, dword [ebp - 0x50]
jge 0x40af0e
mov edx, dword [ebp - 0x30]
jmp 0x40add8
mov ebx, dword [ebp - 0x54]
lea edx, [ebp - 0x28]
mov ecx, ebx
call fcn.00430f70
mov dword [ebp - 0x4c], 1
mov byte [ebp - 4], 3
mov dword [ebp - 0x28], vtable.CVolMem.0
mov byte [ebp - 4], 0x13
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x40af57
mov eax, dword [ebp - 0x28]
push ecx
mov eax, dword [eax + 0xc]
cmp eax, method.CWString.virtual_12
jne 0x40af52
mov ecx, 0x4c51a8
call fcn.00447aa0
jmp 0x40af57
lea ecx, [ebp - 0x28]
call eax
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
mov byte [ebp - 4], 3
mov dword [ebp - 0x28], vtable.CVolObject.0
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0xa4]
call fcn.00408030
mov byte [ebp - 4], 2
mov dword [ebp - 0xb0], vtable.CVolObject.0
mov byte [ebp - 4], 0
mov dword [ebp - 0x44], vtable.CVolMem.0
mov dword [ebp - 4], 0x17
mov ecx, dword [ebp - 0x38]
test ecx, ecx
je 0x40afcc
mov eax, dword [ebp - 0x44]
push ecx
mov eax, dword [eax + 0xc]
cmp eax, method.CWString.virtual_12
jne 0x40afc7
mov ecx, 0x4c51a8
call fcn.00447aa0
jmp 0x40afcc
lea ecx, [ebp - 0x44]
call eax
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x34], 0
mov byte [ebp - 4], 0
mov dword [ebp - 0x44], vtable.CVolObject.0
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xffffffffffffffff
call fcn.0047b870
int3