Function at 0x412c78
Capabilities:
Create thread
Get disk information

Disassembly:
sub esp, 0x3c
mov eax, dword [esp + 0x40]
push ebp
push esi
mov esi, ecx
mov ecx, dword [eax + 0x18]
mov eax, dword [0x4eb218]
push edi
xor edi, edi
cmp ecx, eax
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], edi
mov ebp, 1
je 0x412c9d
mov dword [esi + 0x40c], ebp
mov edx, dword [esi + 0xc]
push ebx
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
push ebp
push 0xffffffffffffffff
push 0x100c
push edx
call ebx
cmp eax, 0xffffffff
je 0x412cd8
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x24]
mov dword [esp + 0x24], 4
push eax
push edi
push 0x1005
push ecx
mov dword [esp + 0x3c], edi
call ebx
mov eax, dword [0x4eb348]
cmp eax, ebp
jne 0x412ce9
mov dword [esi + 0x41c], ebp
jmp 0x412d57
cmp eax, edi
jne 0x412cf5
mov dword [esi + 0x41c], edi
jmp 0x412d57
movsx edx, byte [esi + 0x20c]
push edx
call fcn.004bedf3
mov edi, eax
lea ecx, [esp + 0x1c]
sub edi, 0x41
lea eax, [edi + 0x41]
push eax
push str._c:_
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea edx, [esp + 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp dword [0x4eb348], 2
jne 0x412d42
xor ecx, ecx
cmp eax, 3
sete cl
mov dword [esi + 0x41c], ecx
jmp 0x412d57
cmp eax, 5
je 0x412d4f
cmp edi, ebp
jle 0x412d4f
mov eax, ebp
jmp 0x412d51
xor eax, eax
mov dword [esi + 0x41c], eax
mov edx, dword [esp + 0x50]
mov eax, dword [0x4eb350]
cmp eax, dword [edx + 0x150]
je 0x412e19
cmp dword [0x4eb3d0], 3
jne 0x412e19
test eax, eax
je 0x412deb
mov ebx, dword [sym.imp.USER32.dll_LoadCursorA]
push 0x7f02
push 0
call ebx
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov eax, dword [esi + 0xc]
push 0
push 0
push 0xb
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
xor ebp, ebp
mov edi, 0x4eb3b8
cmp dword [edi], 0
je 0x412db7
push ebp
mov ecx, esi
call fcn.0041c930
add edi, 4
inc ebp
cmp edi, 0x4eb3d0
jl 0x412daa
mov ecx, dword [esi + 0xc]
push 0
push 1
push 0xb
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x7f00
push 0
call ebx
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x412e19
xor ebp, ebp
mov edi, 0x4eb388
mov eax, dword [edi + 0x30]
test eax, eax
je 0x412e0e
xor edx, edx
mov eax, ebp
mov dx, word [edi]
inc ebp
push edx
push eax
mov eax, dword [esi + 0xc]
push 0x101e
push eax
call ebx
add edi, 4
cmp edi, 0x4eb3a0
jl 0x412df2
mov eax, dword [0x4eb440]
mov ecx, dword [esi + 0x430]
test eax, eax
je 0x412e3b
mov eax, dword [0x4eb3d0]
cmp eax, 4
je 0x412e37
cmp eax, 5
jne 0x412e3b
xor eax, eax
jmp 0x412e40
mov eax, dword [0x4eb438]
cmp ecx, eax
mov dword [esi + 0x430], eax
je 0x412e51
mov ecx, esi
call fcn.00419340
mov ecx, dword [esi + 0x430]
mov edx, dword [esi + 0x54]
neg ecx
mov edi, dword [sym.imp.USER32.dll_CheckMenuItem]
sbb ecx, ecx
and ecx, 8
push ecx
push 0x4f11
push edx
call edi
mov eax, dword [0x4eb884]
test eax, eax
je 0x412ea7
mov ecx, dword [0x4eb354]
mov eax, 0x400
test ecx, ecx
je 0x412e8d
mov eax, 0x401
mov ecx, dword [0x4eb358]
test ecx, ecx
je 0x412e99
or al, 0x20
push eax
mov eax, dword [esi + 0xc]
push 0
push 0x1036
push eax
call ebx
mov ebp, dword [esp + 0x50]
mov ecx, dword [0x4eb424]
cmp ecx, dword [ebp + 0x224]
jne 0x412ef8
mov edx, dword [0x4eb428]
mov eax, dword [ebp + 0x228]
cmp edx, eax
jne 0x412ef8
mov eax, dword [0x4eb430]
mov ecx, dword [ebp + 0x230]
cmp eax, ecx
jne 0x412ef8
mov ecx, dword [0x4eb434]
mov eax, dword [ebp + 0x234]
cmp ecx, eax
jne 0x412ef8
mov edx, dword [0x4eb43c]
mov eax, dword [ebp + 0x23c]
cmp edx, eax
je 0x412eff
mov ecx, esi
call fcn.00419340
mov al, byte [0x4eb801]
mov cl, byte [ebp + 0x601]
cmp al, cl
jne 0x412f1e
mov cl, byte [0x4eb800]
mov al, byte [ebp + 0x600]
cmp cl, al
je 0x412f42
mov edx, dword [esi + 0xc]
push 0
push 0
push 0xb
push edx
call ebx
push 0
mov ecx, esi
call fcn.0041ca90
mov ecx, esi
call fcn.00420740
mov dword [esp + 0x10], 1
mov eax, dword [ebp + 0x544]
mov ecx, dword [0x4eb744]
cmp ecx, eax
je 0x412f8c
test eax, eax
je 0x412f6a
mov ecx, esi
call fcn.00422100
lea ecx, [esi + 0x4dc]
call fcn.0042a120
jmp 0x412fdc
mov al, byte [0x4eb640]
test al, al
je 0x412f83
push 0x4eb640
lea ecx, [esi + 0x4dc]
call fcn.00429ed0
mov ecx, esi
call fcn.00421fe0
jmp 0x412fdc
test ecx, ecx
je 0x412fdc
lea eax, [ebp + 0x440]
push eax
push 0x4eb640
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x412fdc
mov ecx, esi
call fcn.00422100
lea edi, [esi + 0x4dc]
mov ecx, edi
call fcn.0042a120
mov al, byte [0x4eb640]
test al, al
je 0x412fcf
push 0x4eb640
mov ecx, edi
call fcn.00429ed0
mov ecx, esi
call fcn.00421fe0
mov edi, dword [sym.imp.USER32.dll_CheckMenuItem]
mov eax, dword [0x4eb424]
mov ecx, dword [esi + 0x54]
neg eax
sbb eax, eax
and eax, 8
push eax
push 0x4f07
push ecx
call edi
mov edx, dword [0x4eb428]
mov eax, dword [esi + 0x54]
neg edx
sbb edx, edx
and edx, 8
push edx
push 0x4efa
push eax
call edi
mov ecx, dword [0x4eb430]
mov edx, dword [esi + 0x54]
neg ecx
sbb ecx, ecx
and ecx, 8
push ecx
push 0x4f37
push edx
call edi
mov eax, dword [0x4eb434]
mov ecx, dword [esi + 0x54]
neg eax
sbb eax, eax
and eax, 8
push eax
push 0x4f0f
push ecx
call edi
mov edx, dword [0x4eb43c]
mov eax, dword [esi + 0x54]
neg edx
sbb edx, edx
and edx, 8
push edx
push 0x4f17
push eax
call edi
mov ecx, dword [esi + 0x430]
mov edx, dword [esi + 0x54]
neg ecx
sbb ecx, ecx
and ecx, 8
push ecx
push 0x4f11
push edx
call edi
mov eax, dword [0x4eb42c]
mov ecx, dword [ebp + 0x22c]
cmp eax, ecx
je 0x413095
test eax, eax
je 0x413088
mov eax, dword [esi + 0x54]
jmp 0x41308a
xor eax, eax
push eax
mov eax, dword [esi + 8]
push eax
call dword [sym.imp.USER32.dll_SetMenu]
mov ecx, dword [0x4eb44c]
mov eax, dword [ebp + 0x24c]
cmp ecx, eax
mov ecx, dword [0x4eb460]
jne 0x4130e9
mov edx, dword [0x4eb450]
mov eax, dword [ebp + 0x250]
cmp edx, eax
jne 0x4130e9
fld qword [0x4eb7c0]
fcomp qword [ebp + 0x5c0]
fnstsw ax
test ah, 0x40
je 0x4130e9
mov eax, dword [0x4eb7bc]
mov edx, dword [ebp + 0x5bc]
cmp eax, edx
jne 0x4130e9
cmp ecx, dword [ebp + 0x260]
je 0x4131aa
mov edx, dword [esi + 0x208]
mov dword [edx + 0x7c], ecx
mov eax, dword [esi + 0x208]
mov ecx, dword [0x4eb44c]
mov dword [eax + 0x68], ecx
mov edx, dword [esi + 0x208]
mov eax, dword [0x4eb450]
mov dword [edx + 0x6c], eax
mov eax, dword [0x4eb7bc]
test eax, eax
je 0x413120
fld qword [0x4eb7c0]
jmp 0x413126
fld qword [0x4cc7b8]
mov ecx, dword [esi + 0x208]
fstp qword [ecx + 0x70]
mov edx, dword [esi + 0x208]
mov eax, dword [edx + 0x30]
test eax, eax
je 0x413155
mov eax, dword [esi + 0x430]
test eax, eax
je 0x413155
mov edi, 1
mov ecx, esi
push edi
call fcn.00412600
jmp 0x41315a
mov edi, 1
mov eax, dword [esi + 0x6c]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [0x4eb7bc]
test eax, eax
je 0x413183
mov ecx, dword [0x4eb7c0]
mov edx, dword [0x4eb7c4]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
jmp 0x413193
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0x3ff00000
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
push eax
push ecx
call fcn.00465560
add esp, 8
mov dword [esi + 0x6c], eax
jmp 0x4131af
mov edi, 1
mov edx, dword [0x4eb7c8]
mov eax, dword [ebp + 0x5c8]
cmp edx, eax
je 0x413214
mov eax, dword [esi + 0xc]
mov edi, dword [sym.imp.USER32.dll_GetWindowLongA]
push 0xfffffffffffffff0
push eax
call edi
mov ecx, dword [esi + 0xc]
mov ebp, dword [sym.imp.USER32.dll_SetWindowLongA]
xor eax, 0x200
push eax
push 0xfffffffffffffff0
push ecx
call ebp
mov edx, dword [esi + 0x24]
push 0xfffffffffffffff0
push edx
call edi
xor eax, 0x200
push eax
mov eax, dword [esi + 0x24]
push 0xfffffffffffffff0
push eax
call ebp
mov ecx, dword [esi + 0x10]
push 0xfffffffffffffff0
push ecx
call edi
mov edx, dword [esi + 0x10]
xor eax, 8
push eax
push 0xfffffffffffffff0
push edx
call ebp
mov ebp, dword [esp + 0x50]
mov edi, 1
mov eax, dword [0x4eb7f8]
mov ecx, dword [0x4eb20c]
and eax, 0xff
mov dword [0x4e3788], eax
mov eax, dword [ebp + 0xc]
cmp ecx, eax
je 0x413234
mov dword [esp + 0x10], edi
mov edx, dword [0x4eb210]
mov eax, dword [ebp + 0x10]
cmp edx, eax
je 0x413249
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], edi
mov eax, dword [0x4eb214]
mov ecx, dword [ebp + 0x14]
cmp eax, ecx
je 0x413259
mov dword [esp + 0x10], edi
mov ecx, dword [ebp + 0x15c]
mov eax, dword [0x4eb35c]
cmp ecx, eax
jne 0x4132a5
mov edx, dword [ebp + 0x160]
mov eax, dword [0x4eb360]
cmp edx, eax
jne 0x4132a5
mov eax, dword [ebp + 0x164]
mov ecx, dword [0x4eb364]
cmp eax, ecx
jne 0x4132a5
mov ecx, dword [ebp + 0x27c]
mov eax, dword [0x4eb47c]
cmp ecx, eax
jne 0x4132a5
mov edx, dword [ebp + 0x278]
mov eax, dword [0x4eb478]
cmp edx, eax
je 0x4132d3
push edi
mov ecx, esi
call fcn.0041ca90
mov eax, dword [0x4eb3d0]
cmp eax, 4
je 0x4132bc
cmp eax, 5
jne 0x4132d8
mov eax, dword [esi + 0xc]
push 0
push 0
push 0xb
push eax
call ebx
mov ecx, esi
call fcn.00420740
mov dword [esp + 0x10], edi
mov eax, dword [0x4eb3d0]
mov ecx, dword [ebp + 0x1d0]
cmp eax, ecx
mov ecx, dword [0x4eb34c]
jne 0x4132f4
cmp ecx, dword [ebp + 0x14c]
je 0x413419
cmp eax, 4
je 0x413346
cmp eax, 5
je 0x413346
test ecx, ecx
je 0x413324
mov ecx, dword [esi + 0x60]
mov edx, dword [esi + 0xc]
push ecx
push 0
push 0x1003
push edx
call ebx
mov eax, dword [esi + 0x64]
mov ecx, dword [esi + 0xc]
push eax
push 1
push 0x1003
push ecx
jmp 0x413344
mov edx, dword [esi + 0x58]
mov eax, dword [esi + 0xc]
push edx
push 0
push 0x1003
push eax
call ebx
mov ecx, dword [esi + 0x5c]
mov edx, dword [esi + 0xc]
push ecx
push 1
push 0x1003
push edx
call ebx
mov eax, dword [0x4eb348]
cmp eax, 1
jne 0x413358
mov dword [esi + 0x41c], eax
jmp 0x4133ca
test eax, eax
jne 0x413364
mov dword [esi + 0x41c], eax
jmp 0x4133ca
movsx eax, byte [esi + 0x20c]
push eax
call fcn.004bedf3
mov edi, eax
lea edx, [esp + 0x1c]
sub edi, 0x41
lea ecx, [edi + 0x41]
push ecx
push str._c:_
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp dword [0x4eb348], 2
jne 0x4133b1
xor ecx, ecx
cmp eax, 3
sete cl
mov dword [esi + 0x41c], ecx
jmp 0x4133ca
cmp eax, 5
je 0x4133c2
cmp edi, 1
jle 0x4133c2
mov eax, 1
jmp 0x4133c4
xor eax, eax
mov dword [esi + 0x41c], eax
mov eax, dword [esi + 0x498]
xor ecx, ecx
test eax, eax
jle 0x413419
or edi, 0xffffffff
cmp ecx, eax
jge 0x4133ec
test ecx, ecx
jl 0x4133ec
mov edx, dword [esi + 0x494]
mov eax, dword [edx + ecx*4]
jmp 0x4133ee
xor eax, eax
mov dword [eax + 0x54], edi
mov dword [eax + 0x50], edi
mov edx, dword [0x4eb3d0]
cmp edx, 4
je 0x413404
cmp edx, 5
jne 0x41340e
mov edx, dword [eax + 0x3c]
test edx, edx
jge 0x41340e
mov dword [eax + 0x58], edi
mov eax, dword [esi + 0x498]
inc ecx
cmp ecx, eax
jl 0x4133dd
mov al, byte [0x4eb484]
mov cl, byte [ebp + 0x284]
cmp al, cl
pop ebx
je 0x413454
mov edx, dword [esi + 0x208]
xor ecx, ecx
test al, al
sete cl
mov dword [edx + 0x6c8], ecx
mov eax, dword [esi + 0x208]
xor edi, edi
cmp dword [eax + 0x30], edi
je 0x413456
push 1
mov ecx, esi
call fcn.00412600
jmp 0x413456
xor edi, edi
mov eax, dword [0x4eb46c]
mov ecx, dword [ebp + 0x26c]
cmp eax, ecx
je 0x413566
cmp eax, edi
je 0x413501
mov dword [esi + 0x428], edi
mov eax, dword [0x4eb46c]
cmp eax, edi
je 0x41354f
cmp dword [esi + 0xbc], edi
je 0x4134d8
mov ecx, dword [esi + 0xb4]
push ecx
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov edx, dword [esi + 0xbc]
push 0xbb8
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x4134ba
push 0x40
call dword [sym.imp.USER32.dll_MessageBeep]
mov eax, dword [esi + 0xbc]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, edi
mov dword [esi + 0xbc], edi
mov eax, dword [0x4eb46c]
cmp ecx, edi
jne 0x41354f
mov ecx, dword [esi + 0xb4]
push ecx
call dword [sym.imp.KERNEL32.dll_ResetEvent]
lea edx, [esp + 0x4c]
push edx
push edi
push esi
push 0x411fb0
push edi
push edi
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [esi + 0xbc], eax
jmp 0x41354a
cmp dword [esi + 0xbc], edi
je 0x41354f
mov eax, dword [esi + 0xb4]
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov ecx, dword [esi + 0xbc]
push 0xbb8
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x413537
push 0x40
call dword [sym.imp.USER32.dll_MessageBeep]
mov edx, dword [esi + 0xbc]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0xbc], edi
mov eax, dword [0x4eb46c]
neg eax
sbb eax, eax
and eax, 8
push eax
mov eax, dword [esi + 0x54]
push 0x4f20
push eax
call dword [sym.imp.USER32.dll_CheckMenuItem]
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x14]
cmp dword [0x4eb21c], edi
je 0x413582
cmp dword [ebp + 0x1c], edi
jne 0x413582
push edi
mov ecx, esi
call fcn.00412600
mov eax, dword [esp + 0xc]
push 1
cmp eax, edi
je 0x413595
mov ecx, esi
call fcn.0041b210
jmp 0x4135a0
mov eax, dword [esi + 0xc]
push edi
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
cmp dword [esp + 0x10], edi
je 0x4135b8
cmp dword [0x4eb434], edi
je 0x4135b8
push 1
push edi
mov ecx, esi
call fcn.0041ce90
cmp dword [esi + 0x41c], edi
je 0x4135c7
mov ecx, esi
call fcn.004204e0
mov ecx, esi
call fcn.00418240
pop edi
pop esi
pop ebp
add esp, 0x3c
ret 4