Function at 0x405530
Capabilities:
Create process on windows

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x51d70d
push eax
mov dword fs:[0], esp
sub esp, 0x114
push ebx
mov ebx, dword [esp + 0x128]
push ebp
push esi
test ebx, ebx
push edi
jl 0x405c5f
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x405c5f
mov edx, dword [ecx + 0x90]
sub edx, eax
mov eax, 0x38e38e39
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp ebx, edx
jae 0x405c5f
mov esi, dword [esp + 0x138]
test esi, esi
jl 0x405c5f
mov edi, dword [ecx + 0x8c]
lea ecx, [ebx + ebx*8]
shl ecx, 2
mov eax, dword [ecx + edi + 4]
test eax, eax
je 0x405c5f
mov edx, dword [ecx + edi + 8]
sub edx, eax
mov eax, 0x2aaaaaab
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp esi, edx
jae 0x405c5f
mov ecx, dword [ecx + edi + 4]
lea esi, [esi + esi*2]
shl esi, 6
add esi, ecx
mov cl, byte [esp + 0x12]
mov byte [esp + 0x3c], cl
push 0
lea ecx, [esp + 0x40]
mov byte [esp + 0x17], 0
call fcn.0040d460
mov eax, dword [esi + 0x6c]
mov dword [esp + 0x12c], 0
test eax, eax
jbe 0x405629
mov edx, dword [0x53510c]
add esi, 0x64
push edx
push 0
push esi
lea ecx, [esp + 0x48]
call fcn.0040d140
mov byte [esp + 0x13], 1
jmp 0x405adc
mov al, byte [esp + 0x12]
push 0
lea ecx, [esp + 0x30]
mov byte [esp + 0x30], al
call fcn.0040d460
test ebx, ebx
mov byte [esp + 0x12c], 1
je 0x405831
cmp ebx, 1
je 0x405838
cmp ebx, 2
je 0x405674
cmp ebx, 3
je 0x40566d
cmp ebx, 4
jne 0x4057b3
cmp ebx, 3
jne 0x40567b
mov ebp, str..mp3
jmp 0x405680
mov ebp, str..avi
jmp 0x405680
mov ebp, str..jpg
mov cl, byte [esp + 0x12]
push 0
mov byte [esp + 0x20], cl
lea ecx, [esp + 0x20]
call fcn.0040d460
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebp
lea ecx, [esp + 0x24]
call fcn.0040fa00
mov edi, dword [esi + 0x88]
lea edx, [esp + 0x1c]
lea ebx, [esi + 0x84]
lea eax, [esp + 0x14]
push edx
push eax
mov ecx, ebx
mov byte [esp + 0x134], 8
call fcn.004cfcd0
mov edx, dword [esp + 0x14]
push 1
cmp edx, edi
lea ecx, [esp + 0x20]
setne byte [esp + 0x16]
mov byte [esp + 0x130], 1
call fcn.0040d460
mov al, byte [esp + 0x12]
test al, al
je 0x4057b3
mov cl, byte [esp + 0x12]
push 0
mov byte [esp + 0x20], cl
lea ecx, [esp + 0x20]
call fcn.0040d460
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebp
lea ecx, [esp + 0x24]
call fcn.0040fa00
lea ecx, [esp + 0xc0]
mov byte [esp + 0x12c], 9
call fcn.0040cc70
lea edx, [esp + 0x1c]
push eax
push edx
lea ecx, [esp + 0x74]
mov byte [esp + 0x134], 0xa
call fcn.0040e6d0
push eax
lea eax, [esp + 0x18]
push eax
mov ecx, ebx
mov byte [esp + 0x134], 0xb
call fcn.0040e490
mov edi, dword [eax]
lea ecx, [esp + 0x6c]
mov byte [esp + 0x12c], 0xa
call fcn.0040ccb0
lea ecx, [esp + 0xc0]
mov byte [esp + 0x12c], 9
call fcn.0040cbd0
mov ecx, dword [0x53510c]
lea eax, [edi + 0x40]
push ecx
push 0
push eax
lea ecx, [esp + 0x38]
call fcn.0040d140
push 1
lea ecx, [esp + 0x20]
mov byte [esp + 0x130], 1
call fcn.0040d460
lea ecx, [esp + 0x6c]
call fcn.0040cd80
lea ecx, [esp + 0x2c]
push eax
push ecx
lea ecx, [esp + 0xc8]
mov byte [esp + 0x134], 0xc
call fcn.0040ecf0
lea edx, [esp + 0x14]
push eax
push edx
lea ecx, [esi + 0xac]
mov byte [esp + 0x134], 0xd
call fcn.0040eb60
mov esi, dword [eax]
lea ecx, [esp + 0xc0]
mov byte [esp + 0x12c], 0xc
call fcn.0040cee0
lea ecx, [esp + 0x6c]
mov byte [esp + 0x12c], 1
call fcn.0040cde0
mov eax, dword [esi + 0x48]
test eax, eax
jbe 0x405ab3
mov eax, dword [0x53510c]
add esi, 0x50
push eax
push 0
jmp 0x405abf
mov ebp, str.http
jmp 0x40583d
mov ebp, str.mailto
cmp dword [0x56f014], 5
jle 0x405997
mov dl, byte [esp + 0x12]
push 0
lea ecx, [esp + 0x20]
mov byte [esp + 0x20], dl
call fcn.0040d460
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebp
lea ecx, [esp + 0x24]
call fcn.0040fa00
mov bl, 2
lea ecx, [esp + 0xc0]
mov byte [esp + 0x12c], bl
call fcn.0040cc70
push eax
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x74]
mov byte [esp + 0x134], 3
call fcn.0040e9e0
lea ecx, [esp + 0x14]
push eax
push ecx
lea ecx, [esi + 0x98]
mov byte [esp + 0x134], 4
call fcn.0040e850
mov edi, dword [eax]
lea ecx, [esp + 0x6c]
mov byte [esp + 0x12c], 3
call fcn.0040ccb0
lea ecx, [esp + 0xc0]
mov byte [esp + 0x12c], bl
call fcn.0040cbd0
mov edx, dword [0x53510c]
lea eax, [edi + 0x40]
push edx
push 0
push eax
lea ecx, [esp + 0x38]
call fcn.0040d140
push 1
lea ecx, [esp + 0x20]
mov byte [esp + 0x130], 1
call fcn.0040d460
mov edi, dword [esi + 0xb0]
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x14]
lea ebx, [esi + 0xac]
push eax
push ecx
mov ecx, ebx
call fcn.004cfcd0
cmp dword [esp + 0x14], edi
jne 0x4057b3
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebp
lea ecx, [esp + 0x34]
call fcn.0040fa00
mov edi, dword [esi + 0xb0]
lea edx, [esp + 0x2c]
lea eax, [esp + 0x14]
push edx
push eax
mov ecx, ebx
call fcn.004cfcd0
mov eax, dword [esp + 0x14]
cmp eax, edi
jne 0x4057b3
push 1
lea ecx, [esp + 0x30]
mov byte [esp + 0x130], 0
call fcn.0040d460
push 1
lea ecx, [esp + 0x40]
mov dword [esp + 0x130], 0xffffffff
call fcn.0040d460
jmp 0x405c5f
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebp
lea ecx, [esp + 0x34]
call fcn.0040fa00
mov edi, dword [esi + 0xb0]
lea ecx, [esp + 0x2c]
lea ebx, [esi + 0xac]
lea edx, [esp + 0x14]
push ecx
push edx
mov ecx, ebx
call fcn.004cfcd0
cmp dword [esp + 0x14], edi
jne 0x4057b3
mov al, byte [esp + 0x12]
push 0
lea ecx, [esp + 0x20]
mov byte [esp + 0x20], al
call fcn.0040d460
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebp
lea ecx, [esp + 0x24]
call fcn.0040fa00
lea ecx, [esp + 0xc0]
mov byte [esp + 0x12c], 5
call fcn.0040cc70
lea ecx, [esp + 0x1c]
push eax
push ecx
lea ecx, [esp + 0x74]
mov byte [esp + 0x134], 6
call fcn.0040e9e0
lea edx, [esp + 0x14]
push eax
push edx
lea ecx, [esi + 0x98]
mov byte [esp + 0x134], 7
call fcn.0040e850
mov edi, dword [eax]
lea ecx, [esp + 0x6c]
mov byte [esp + 0x12c], 6
call fcn.0040ccb0
lea ecx, [esp + 0xc0]
mov byte [esp + 0x12c], 5
call fcn.0040cbd0
mov ecx, dword [0x53510c]
lea eax, [edi + 0x40]
push ecx
push 0
push eax
lea ecx, [esp + 0x38]
call fcn.0040d140
push 1
lea ecx, [esp + 0x20]
mov byte [esp + 0x130], 1
call fcn.0040d460
mov edi, dword [esi + 0xb0]
lea edx, [esp + 0x2c]
lea eax, [esp + 0x14]
push edx
push eax
mov ecx, ebx
call fcn.004cfcd0
mov eax, dword [esp + 0x14]
jmp 0x405961
mov ecx, dword [0x53510c]
add esi, 0x60
push ecx
push 0
push esi
lea ecx, [esp + 0x48]
call fcn.0040d140
push 1
lea ecx, [esp + 0x30]
mov byte [esp + 0x130], 0
call fcn.0040d460
mov dl, byte [esp + 0x12]
push 0
lea ecx, [esp + 0x60]
mov byte [esp + 0x60], dl
call fcn.0040d630
mov al, byte [esp + 0x12]
push 0
lea ecx, [esp + 0x50]
mov byte [esp + 0x130], 0xe
mov byte [esp + 0x50], al
call fcn.0040d630
mov eax, dword [esp + 0x40]
mov bl, 0xf
test eax, eax
mov byte [esp + 0x12c], bl
mov esi, 0x535108
je 0x405b22
mov esi, eax
push 0xc
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov byte [esp + 0x12c], 0x10
je 0x405b48
push esi
mov ecx, eax
call fcn.0040d500
mov esi, eax
jmp 0x405b4a
xor esi, esi
test esi, esi
mov byte [esp + 0x12c], bl
mov dword [esp + 0x14], esi
jne 0x405b63
push 0x8007000e
call fcn.004c7dcc
test esi, esi
mov byte [esp + 0x12c], 0x11
je 0x405b73
mov eax, dword [esi]
jmp 0x405b75
xor eax, eax
lea ecx, [esp + 0x4c]
lea edx, [esp + 0x5c]
push ecx
push edx
push eax
call fcn.004a3d50
add esp, 0xc
mov edi, eax
test esi, esi
je 0x405b95
mov ecx, esi
call fcn.0040d580
test edi, edi
je 0x405c15
mov al, byte [esp + 0x13]
test al, al
je 0x405bb0
mov ecx, dword [esp + 0x50]
test ecx, ecx
jne 0x405bb2
mov ecx, 0x535104
jmp 0x405bb2
xor ecx, ecx
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x405bbf
mov eax, 0x535104
push 5
push 0
push ecx
push eax
push 0
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp eax, 0x20
push 1
lea ecx, [esp + 0x50]
mov byte [esp + 0x130], 0xe
setg bl
call fcn.0040d630
push 1
lea ecx, [esp + 0x60]
mov byte [esp + 0x130], 0
call fcn.0040d630
push 1
lea ecx, [esp + 0x40]
mov dword [esp + 0x130], 0xffffffff
call fcn.0040d460
mov al, bl
jmp 0x405c61
push 1
lea ecx, [esp + 0x50]
mov byte [esp + 0x130], 0xe
call fcn.0040d630
push 1
lea ecx, [esp + 0x60]
mov byte [esp + 0x130], 0
call fcn.0040d630
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x405c5f
mov al, byte [ecx - 1]
test al, al
je 0x405c55
cmp al, 0xff
je 0x405c55
dec al
mov byte [ecx - 1], al
jmp 0x405c5f
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
xor al, al
mov ecx, dword [esp + 0x124]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x120
ret 8