Function at 0x401100
Capabilities:
Get disk information
Parse credit card information
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, ebx
xor esi, 0x2c4
mov eax, 0x152
mov dword [ebp - 0x18], esi
and esi, 0xffff
xor edx, edx
or bl, 0xf
div esi
mov byte [ebp - 8], bl
mov ecx, 0x254
mov eax, dword [ebp - 8]
add bl, 0x21
and eax, 0xff
mov byte [ebp - 8], bl
imul eax, esi
mov ebx, dword [ebp + 8]
push edi
sub ecx, edx
or ecx, eax
mov eax, dword [ebp + 0xc]
or ecx, esi
cmp eax, 0x43
mov dword [ebp - 0xc], ecx
jne 0x401165
mov dl, byte [ebp - 0x18]
mov al, 0x99
sub al, dl
mov byte [ebp - 8], al
jmp 0x401269
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp - 8]
cmp eax, 0x1f
jae 0x4011b1
or al, 0xb8
push eax
push eax
push eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_LockFileEx]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp + 0xc]
cmp eax, 0x23
jne 0x401202
mov eax, 0x192
xor edx, edx
div dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
mov esi, 0x117
mov ecx, edx
xor edx, edx
div esi
xor cl, dl
mov byte [ebp - 8], cl
mov ecx, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
jmp 0x40126c
cmp eax, 0x59
jne 0x4011bf
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0x65f
jne 0x401184
cmp ecx, 0x1b59f
jne 0x4011d8
mov eax, 0x441b80
mov dword [ebp - 0x10], eax
jmp 0x401225
cmp ecx, 0x4c
jne 0x401225
mov eax, edi
xor edx, edx
and eax, 0xff
mov esi, 0x94
div esi
mov esi, ecx
mov eax, edx
xor edx, edx
div esi
and edx, 0x2f8
or edx, ebx
mov dword [ebp - 0x18], edx
jmp 0x401225
cmp eax, 0x1f
jne 0x40121e
mov edi, dword [ebp - 8]
mov eax, edi
and eax, 0xff
push eax
push eax
call dword [sym.imp.KERNEL32.dll_SetCommState]
mov ecx, dword [ebp - 0xc]
jmp 0x40126c
cmp eax, 0x65f
jne 0x401251
mov eax, ebx
shl eax, 5
sub eax, ebx
lea eax, [eax + eax*4]
lea edx, [eax + eax*4]
mov eax, 0xa0b9d6e1
mul edx
mov eax, dword [ebp - 0x10]
shr edx, 0xa
xor edx, 0x65f
lea edx, [eax + edx - 0x114]
mov dword [ebp - 0x10], edx
jmp 0x40126c
cmp dword [ebp + 0xc], 0x1b
ja 0x401269
mov al, byte [ebp - 0x18]
mov dl, byte [ebp + 0xc]
and al, dl
mov dl, byte [ebp - 8]
and al, 0x18
and dl, al
mov byte [ebp - 8], dl
mov edi, dword [ebp - 8]
mov eax, dword [ebp + 0xc]
mov esi, ecx
imul esi, eax
xor esi, 0x148
cmp si, 0x17
jne 0x401289
mov byte [ebp - 8], 0x1f
jmp 0x401371
cmp si, 0x44
jne 0x4012b0
mov eax, 0x28
xor edx, edx
div dword [ebp + 0xc]
mov edi, dword [ebp - 0xc]
mov ecx, edi
sub edx, edi
sub edx, 0x37a
and edx, ebx
mov dword [ebp - 0x18], edx
jmp 0x401371
cmp si, 0x2149
jne 0x40132b
cmp eax, 0x65f
jne 0x4012d0
mov edx, dword [ebp - 0x10]
mov eax, edx
mov dword [ebp - 0x1c], edx
mov edx, dword [eax]
mov dword [ebp - 0x24], edx
jmp 0x40138d
cmp eax, 8
jne 0x4012e1
pop edi
pop esi
mov eax, 0x2149
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0x57
jne 0x401312
mov ecx, edi
mov eax, 0xdbeb61ef
and ecx, 0xff
mul ecx
mov eax, dword [ebp - 0x1c]
mov ecx, edx
mov edx, dword [ebp - 0x18]
shr ecx, 9
add ecx, 2
and ecx, edx
mov edx, dword [eax]
and ecx, 0x1b
mov dword [ebp - 0x24], edx
mov dword [ebp - 0xc], ecx
jmp 0x40138d
cmp eax, 0x24
jae 0x401361
mov eax, edi
xor edx, edx
and eax, 0xff
mov esi, 0x110
div esi
mov esi, edx
jmp 0x40135a
cmp si, 0x3d
jae 0x40135a
mov eax, dword [ebp + 0xc]
mov ecx, edi
and ecx, 0xff
xor edx, edx
div ecx
mov edx, dword [ebp - 0xc]
and edx, 0x87
sub eax, 0x149
or eax, edx
push eax
call dword [sym.imp.KERNEL32.dll_TryEnterCriticalSection]
mov ecx, dword [ebp - 0xc]
cmp si, 0x2149
jne 0x40136b
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax]
mov dword [ebp - 0x24], edx
jmp 0x40138d
cmp si, 0x61
jae 0x40138d
mov edi, dword [ebp - 0x18]
mov eax, 0xcb
and edi, 0xffff
xor edx, edx
div edi
mov edi, dword [ebp - 8]
sub al, 0x2e
and eax, 0x65
xor esi, eax
mov eax, dword [ebp - 0x24]
cmp ebx, 0x14
mov dword [ebp - 0x20], eax
je 0x401eaf
cmp ebx, 0xc
jne 0x4013b1
mov ecx, edi
and ecx, 0xff
xor ecx, 4
mov dword [ebp - 0xc], ecx
jmp 0x4013eb
cmp ebx, 0xe
jae 0x4013c4
mov eax, esi
pop edi
pop esi
and eax, 0xffff
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x4a
jae 0x4013d2
pop edi
pop esi
mov eax, ecx
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 2
jb 0x401eaf
cmp ebx, 0x10ef
jne 0x4013eb
mov eax, 0x440332
mov dword [ebp - 0x10], eax
mov eax, ecx
imul eax, eax, 0x306
xor eax, ecx
cmp ax, 0xd
mov dword [ebp - 0x14], eax
jne 0x40140f
mov eax, dword [ebp - 0xc]
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetProfileIntW]
mov ecx, dword [ebp - 0xc]
jmp 0x40144c
cmp ax, 0xab25
jne 0x40141e
add dword [ebp - 0x10], 0xd40
jmp 0x40144c
cmp ax, 0x54
ja 0x40144c
mov esi, edi
mov eax, 0x316f8
and esi, 0xff
xor edx, edx
div esi
mov edx, dword [ebp - 0x14]
and edx, 0xffff
sub eax, edx
xor eax, ecx
xor eax, 0x3b7
mov ecx, eax
mov dword [ebp - 0xc], ecx
mov eax, dword [ebp - 0x10]
mov esi, 0x1f
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x18]
lea edx, [eax + eax*4]
lea edx, [eax + edx*8]
lea edx, [eax + edx*8]
shl edx, 1
sub esi, edx
mov edx, dword [ebp - 0x14]
add edx, esi
cmp ebx, 0x28
mov dword [ebp - 0x14], edx
jne 0x40148e
mov al, cl
mov dl, 0x91
imul dl
mov dl, byte [ebp - 0x18]
and al, 0xd3
add dl, bl
and dl, 0x98
xor al, dl
mov byte [ebp - 8], al
jmp 0x4015c4
cmp ebx, 0x4c
jne 0x4014b3
movzx ax, byte [ebp - 8]
lea edx, [eax*8]
sub edx, eax
shl edx, 7
mov eax, edx
and eax, 0x7f01
mov dword [ebp - 0x14], eax
jmp 0x4015c4
cmp ebx, 0xa
jne 0x4014c6
mov eax, edx
pop edi
pop esi
and eax, 0xffff
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x10ef
jne 0x401599
cmp ax, 0x15
jae 0x4014e1
or byte [ebp - 8], 0xa7
jmp 0x4015c4
cmp ax, 0x40
jae 0x40151b
mov eax, 0x29f
xor edx, edx
div dword [ebp + 0xc]
mov eax, dword [ebp - 0x14]
lea ecx, [eax*8]
sub ecx, eax
shl ecx, 6
add ecx, eax
add edx, eax
mov eax, dword [ebp + 0xc]
xor edx, ecx
mov ecx, dword [ebp - 0xc]
xor eax, 0x3b7
or edx, eax
mov dword [ebp - 0x14], edx
jmp 0x4015c4
cmp ax, 0x49b
jne 0x401538
cmp dx, 0xd4de
jne 0x4015c4
mov dword [ebp - 0x10], 0x165f
jmp 0x4015c4
cmp ax, 6
jne 0x40154c
mov eax, edi
pop edi
pop esi
and eax, 0xff
pop ebx
mov esp, ebp
pop ebp
ret
cmp ax, 0x50
jae 0x401559
add al, 0x66
mov byte [ebp - 8], al
jmp 0x4015c4
cmp ax, 0x39
jae 0x4015c4
mov esi, dword [ebp - 0x18]
mov eax, pe_nt_image_headers32
and esi, 0xffff
xor edx, edx
div esi
mov eax, edx
xor edx, edx
div esi
mov esi, dword [ebp - 0x14]
xor edx, edx
mov edi, esi
and edi, 0xffff
div edi
and edx, 0x185
xor edx, esi
xor edx, 0x1d9
mov dword [ebp - 0x14], edx
jmp 0x4015c4
cmp ebx, 0x27
jae 0x4015ab
mov ecx, edx
and ecx, 0x24b
mov dword [ebp - 0xc], ecx
jmp 0x4015c4
cmp ebx, 0x1a
jne 0x4015c4
mov eax, ecx
xor edx, edx
mov esi, 0xe1
div esi
and dl, 0xce
xor dl, 0x10
mov byte [ebp - 8], dl
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x10]
mov esi, dword [edx]
sub esi, eax
je 0x40183c
mov eax, ebx
xor edx, edx
div ebx
lea ecx, [ebx + ebx*2]
mov eax, 0x72b8
shl ecx, 4
add ecx, ebx
mov edi, dword [ebp - 0x1c]
shl ecx, 4
add ecx, ebx
sub eax, edx
mov dl, 0x55
and eax, ecx
mov cl, 0x34
mov dword [ebp - 0x34], eax
mov al, byte [ebp + 0xc]
imul dl
sub cl, al
mov byte [ebp + 0xb], cl
jmp 0x401609
mov cl, byte [ebp + 0xb]
mov eax, dword [ebp - 0x34]
mov byte [ebp - 0x18], cl
cmp ax, 0x31
mov dword [ebp - 0x30], eax
jb 0x40165f
cmp ax, 0x6098
jne 0x401623
mov dword [ebp - 0x1c], esi
jmp 0x40165f
cmp ax, 0x52
je 0x4018c9
cmp ax, 0xb
jae 0x40164d
mov ecx, dword [ebp - 0x18]
mov eax, 0x1e114
and ecx, 0xff
sub eax, ecx
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetCompressedFileSizeW]
jmp 0x40165f
cmp ax, 0x47
jne 0x40165f
mov edx, dword [ebp + 0xc]
add edx, 0x6f5c
mov dword [ebp - 0x30], edx
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0x10]
sub eax, ecx
mov dword [ebp - 0x2c], 0
je 0x40178d
mov al, byte [ebp + 0xc]
mov cl, bl
sub cl, al
mov al, bl
mov dl, 0xf6
imul dl
or cl, al
mov eax, 0xb21642c9
mul ebx
shr edx, 4
mov eax, edx
mov edx, dword [ebp + 0xc]
add al, dl
xor cl, al
mov eax, 0x61ab4d73
mul edx
shr edx, 8
mov eax, edx
mov byte [ebp - 1], cl
shl eax, 6
add eax, edx
xor edx, edx
shl eax, 3
div ebx
xor edx, edx
mov ecx, dword [ebp - 0x1c]
div dword [ebp + 0xc]
mov esi, eax
mov eax, dword [ebp + 0xc]
xor esi, eax
mov eax, dword [ebp - 0x24]
sub ecx, eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x38], ecx
mov al, byte [ebp - 1]
cmp al, 0xc
jbe 0x40176f
cmp al, 0x49
jb 0x40176f
cmp al, 6
jae 0x4016f3
mov eax, dword [ebp + 0xc]
push eax
push eax
push eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_SearchPathA]
jmp 0x40176f
cmp al, 0x45
je 0x4018d5
cmp al, 0xa1
jne 0x40176f
cmp ebx, 0x10ef
jne 0x40173a
mov eax, dword [ebp + 0xc]
cmp eax, 0x45
jbe 0x40176f
cmp eax, 0x65f
jne 0x401723
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x28]
mov dl, byte [ecx + eax]
mov byte [eax], dl
jmp 0x40176f
cmp eax, 0x22
jae 0x40176f
push 0x11ef
push 0x11ef
call dword [sym.imp.KERNEL32.dll_GetCompressedFileSizeW]
jmp 0x40176f
cmp ebx, 0x1e
je 0x401eaf
cmp ebx, 0x5a
jb 0x4013b6
cmp ebx, 0x41
jae 0x401763
push 0xa1
push 0xa1
call dword [sym.imp.KERNEL32.dll_Beep]
jmp 0x40176f
cmp ebx, 0x44
jae 0x40176f
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalDeleteAtom]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x10]
inc eax
inc ecx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], ecx
mov ecx, dword [edi + 4]
sub ecx, edx
cmp eax, ecx
jb 0x4016cb
mov al, byte [ebp - 0x18]
cmp al, 0x1f
jae 0x4017ba
mov eax, dword [ebp - 0x18]
and eax, 0xff
lea edx, [eax*8]
sub edx, eax
shl edx, 6
add edx, eax
lea eax, [eax + edx*2]
push eax
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov al, byte [ebp - 0x18]
jmp 0x4017e5
cmp al, 0x16
ja 0x4017cd
mov al, byte [ebp - 0x30]
mov cl, byte [ebp + 0xc]
not al
or al, cl
mov byte [ebp - 0x18], al
jmp 0x4017e5
cmp al, 0x41
je 0x4017e5
cmp al, 0xa9
jne 0x4017e5
mov ecx, dword [edi + 4]
mov esi, dword [ebp - 0x10]
mov edx, dword [ebp - 0x24]
sub ecx, esi
add edx, ecx
mov dword [ebp - 0x24], edx
movzx ax, al
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*2]
and ecx, 0xff
lea eax, [eax + eax*4]
lea edx, [eax + eax*8]
mov eax, dword [ebp + 0xc]
shl edx, 1
mov esi, edx
mov edx, eax
and esi, 0xffff
and edx, 0xffff
and esi, edx
xor edx, edx
div ecx
or esi, ecx
add esi, 0x34c
add eax, 0x30b
and esi, eax
mov eax, dword [ebp - 0x10]
lea edi, [edi + esi*4 - 0x7f8]
mov esi, dword [edi]
sub esi, eax
jne 0x401606
mov ecx, dword [ebp - 0xc]
movzx ax, byte [ebp - 8]
mov esi, ebx
mov edi, dword [ebp - 0x10]
imul esi, ebx
lea edx, [eax + eax*2]
lea edx, [edx + edx*4]
lea eax, [eax + edx*4]
lea eax, [eax + eax*2]
lea edx, [esi + eax*4]
lea eax, [ecx*8]
sub eax, ecx
shl eax, 4
add eax, ecx
shl eax, 3
sub eax, ecx
lea ecx, [edx + eax + 0x1af]
mov eax, dword [ebp - 0x14]
cmp ax, 0x3b
je 0x401965
cmp ax, 0x1f
jbe 0x401965
cmp ax, 0x64
jb 0x401965
cmp ax, 0x16
jae 0x4018e1
mov esi, ecx
mov eax, 0x1ef
and esi, 0xffff
xor edx, edx
div esi
mov ecx, 0x34c
xor edx, edx
sub ecx, eax
mov eax, 0x350
div esi
or ecx, eax
push ecx
push ecx
call dword [sym.imp.KERNEL32.dll_SetCommState]
jmp 0x401965
pop edi
pop esi
mov eax, 0x52
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0x45
pop ebx
mov esp, ebp
pop ebp
ret
cmp ax, 0xd4de
jne 0x40194c
mov al, byte [ebp - 8]
cmp al, 0x19
ja 0x4018fa
pop edi
pop esi
mov eax, 0xd4de
pop ebx
mov esp, ebp
pop ebp
ret
cmp al, 0x5d
jae 0x401924
and ecx, 0xffff
mov eax, 0x22b63cbf
mul ecx
mov eax, edx
xor edx, edx
shr eax, 4
div dword [ebp + 0xc]
mov eax, ebx
sub eax, edx
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetProfileIntW]
jmp 0x401965
cmp al, 0xd
ja 0x401931
pop edi
mov eax, ebx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp al, 0x64
jae 0x401940
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceA]
jmp 0x401965
cmp al, 0x80
jne 0x401965
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x1c], ecx
jmp 0x401965
cmp ax, 7
jae 0x401965
mov eax, ecx
and eax, 0xffff
push eax
push eax
push eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_SearchPathA]
mov ecx, dword [ebp + 0xc]
cmp ecx, 0x41
jb 0x40197f
cmp ecx, 0x65f
jne 0x40197f
mov edi, 0x22a13
sub edi, ebx
mov dword [ebp - 0x10], edi
test edi, edi
mov dword [ebp - 0x30], 0
jbe 0x401eaf
mov al, 0x65
lea edx, [ebx + 0x146]
sub al, bl
mov byte [ebp - 2], al
mov eax, ecx
and eax, 0xfffffd5e
xor eax, edx
mov dword [ebp - 0x38], eax
mov al, byte [ebp - 2]
mov edx, dword [ebp - 0x38]
mov byte [ebp - 0xc], al
mov edi, dword [ebp - 0xc]
mov esi, edi
and esi, 0xff
mov eax, esi
xor eax, edx
cmp eax, 0x161d
mov dword [ebp - 0x14], eax
jne 0x4019ec
mov ecx, esi
mov eax, dword [ebp - 0x20]
imul ecx, ecx, 0x72
mov edx, dword [ebp + 0xc]
add ecx, eax
mov al, byte [ecx + edx - 0x3aeb]
push eax
call fcn.00402b50
mov byte [ebp + 0xb], al
mov eax, dword [ebp - 0x14]
add esp, 4
add eax, 0x4d
and eax, 0x286
xor eax, esi
cmp ebx, 0x28
mov dword [ebp - 0x18], eax
jae 0x401a06
mov eax, dword [ebp + 0xc]
jmp 0x401a95
cmp ebx, 0x20
je 0x401e85
cmp ebx, 0x10ef
jne 0x401a77
cmp eax, 0x274
jne 0x401a32
mov ecx, dword [ebp - 0x20]
mov dl, byte [ecx + 1]
push edx
call fcn.00402b50
add esp, 4
mov byte [ebp - 1], al
jmp 0x401a9e
cmp eax, 0x50
jae 0x401a48
mov al, byte [ebp - 0xc]
mov cl, 0x30
imul cl
add al, byte [ebp + 0xc]
and al, 0x6e
mov byte [ebp - 0xc], al
jmp 0x401a9e
cmp eax, 0x3e
jae 0x401a5c
mov eax, dword [ebp + 0xc]
sub eax, esi
xor eax, 0x1de
mov dword [ebp - 0x18], eax
jmp 0x401a9e
cmp eax, 0x28
jb 0x401a9e
cmp eax, 0x17
jne 0x401a6c
mov byte [ebp - 0xc], 0xdf
jmp 0x401a9e
cmp eax, 0x1a
jb 0x40153e
jmp 0x401a9e
cmp ebx, 0x4f
jb 0x401a9e
cmp ebx, 5
jae 0x401a9e
mov eax, 0x18e
xor edx, edx
div dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp + 0xc]
and eax, ecx
and eax, edi
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceA]
mov ecx, dword [ebp + 0xc]
xor edx, edx
lea eax, [ecx*8]
sub eax, ecx
lea eax, [eax + eax*2]
shl eax, 5
sub eax, ecx
div ecx
xor edx, edx
div ecx
mov eax, ecx
add dl, 0x4f
cmp eax, 0x65f
mov byte [ebp - 8], dl
jne 0x401b1d
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x14]
and ecx, 0xff
xor edx, edx
div ecx
mov dl, byte [ebp + 0xb]
mov dword [ebp - 0x34], ecx
mov ecx, eax
mov al, byte [ebp - 0x14]
and ecx, 1
xor ecx, 0x1da
sub ecx, 0x1d9
shl dl, cl
mov cl, byte [ebp - 0x34]
xor cl, al
mov al, byte [ebp - 1]
or cl, 0xd1
add cl, 0x11
shr al, cl
lea ecx, [ebx - 0x11a]
or dl, al
mov eax, dword [ebp - 0x1c]
or ecx, 0x65f
mov byte [ecx + eax - 0xfdf], dl
mov eax, 0x32d
xor edx, edx
div dword [ebp - 0x14]
xor edx, edx
mov ecx, 0x3e
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 0xc]
and esi, 0xff
and edi, 0xff
div ecx
sub edx, ebx
add edx, esi
add edx, edi
cmp edx, 0xfffff075
jne 0x401c53
mov ecx, dword [ebp + 0xc]
cmp ecx, 0x65f
jne 0x401bcc
mov eax, dword [ebp - 0x18]
cmp eax, 0x274
jne 0x401b80
mov edx, dword [ebp - 0x20]
mov al, byte [edx + 2]
push eax
call fcn.00402b50
add esp, 4
mov byte [ebp + 0xb], al
jmp 0x401c53
cmp eax, 0x60
jae 0x401b8d
mov ecx, dword [ebp - 0x18]
jmp 0x401c4c
cmp eax, 0x57
jae 0x401ba7
push 0x65f
push 0x65f
call dword [sym.imp.KERNEL32.dll_Beep]
jmp 0x401c53
cmp eax, 0x18
jne 0x401bb5
mov byte [ebp - 0xc], 0xdf
jmp 0x401c53
cmp eax, 0x22
jbe 0x401e91
cmp eax, 8
je 0x401928
jmp 0x401c53
cmp ecx, 0xa
jae 0x401bf0
mov eax, 0x400003e3
mul ecx
shr edx, 0x1e
mov eax, 0xe1fc780f
mul edx
shr edx, 9
mov al, 0xf2
sub al, dl
or al, bl
mov byte [ebp - 8], al
jmp 0x401c53
cmp ecx, 0x42
je 0x401ea0
cmp ecx, 0x4d
jne 0x401c1d
mov ecx, dword [ebp - 0x18]
mov eax, ecx
shl eax, 4
add eax, ecx
lea eax, [eax + eax*2]
lea edx, [eax + eax*8]
shl edx, 1
sub edx, ecx
sub edx, edi
or edx, esi
or edx, ebx
mov dword [ebp - 0x18], edx
jmp 0x401c53
cmp ecx, 0x4b
jae 0x401c31
mov eax, ebx
or al, 0x17
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetProfileIntW]
jmp 0x401c53
cmp ecx, 0x41
jne 0x401c53
lea eax, [ebx + ebx*8]
lea edx, [ebx + 0x75]
lea ecx, [ebx + eax*2]
shl ecx, 4
sub ecx, ebx
and ecx, edx
and ecx, 0x208
push ecx
call dword [sym.imp.KERNEL32.dll_TryEnterCriticalSection]
lea eax, [ebx - 0x1a2]
and eax, 0x3a4
cmp eax, 0x2a
mov dword [ebp - 0x14], eax
jne 0x401c7a
mov al, byte [ebp - 0xc]
mov cl, 0xfe
imul cl
or al, byte [ebp + 0xc]
or al, 0xfd
mov byte [ebp - 8], al
jmp 0x401d3b
cmp eax, 0x23
jne 0x401c9d
mov ecx, dword [ebp - 8]
mov eax, dword [ebp + 0xc]
and ecx, 0xff
xor edx, edx
div ecx
or edx, 0x168
mov dword [ebp - 0x18], edx
jmp 0x401d3b
cmp eax, 0x304
jne 0x401d0f
cmp byte [ebp - 0xc], 0x76
jne 0x401d3b
mov al, byte [ebp - 0x18]
mov dl, 0x90
imul dl
mov cl, al
mov al, bl
mov dl, 0x76
imul dl
mov dl, byte [ebp + 0xb]
and cl, al
add cl, 2
mov eax, 0x20
shr dl, cl
mov byte [ebp - 3], dl
xor edx, edx
div ebx
mov eax, edx
shl eax, 6
sub eax, edx
mov dl, byte [ebp - 1]
lea ecx, [eax*4 - 0x1f7c]
mov eax, 0x1e5
shl dl, cl
mov cl, byte [ebp - 3]
or cl, dl
xor edx, edx
div ebx
mov esi, eax
mov eax, 0xd41d41d5
mul esi
sub esi, edx
shr esi, 1
add esi, edx
mov edx, dword [ebp - 0x1c]
shr esi, 9
mov byte [esi + edx + 1], cl
jmp 0x401d3b
cmp eax, 0x57
jne 0x401d27
mov al, bl
mov cl, byte [ebp - 0xc]
imul byte [ebp - 8]
add al, cl
add al, 0x23
and al, 0xe1
mov byte [ebp - 8], al
jmp 0x401d3b
cmp eax, 0x54
jne 0x401d32
mov byte [ebp - 8], 0x5b
jmp 0x401d3b
cmp eax, 0x36
jbe 0x401eb2
mov cl, byte [ebp - 0x14]
mov dl, byte [ebp - 0x18]
mov al, byte [ebp - 0xc]
sub cl, dl
sub cl, al
or cl, bl
or cl, 0x86
cmp ebx, 0x44
mov byte [ebp - 0xc], cl
jb 0x401eaf
cmp ebx, 0x34
ja 0x401d74
mov eax, dword [ebp - 0x14]
xor edx, edx
mov esi, 0x253
div esi
sub dl, byte [ebp - 0x14]
or dl, cl
mov byte [ebp - 8], dl
jmp 0x401db4
cmp ebx, 0x41
jae 0x401d88
mov eax, 0x3d518
xor edx, edx
div dword [ebp - 0x14]
mov byte [ebp - 8], dl
jmp 0x401db4
cmp ebx, 0x10ef
jne 0x401db4
mov ecx, dword [ebp - 0xc]
mov eax, 0x37d
and ecx, 0xff
xor edx, edx
div ecx
mov edx, dword [ebp - 0x20]
mov al, byte [eax + edx]
push eax
call fcn.00402b50
add esp, 4
mov byte [ebp - 1], al
mov eax, dword [ebp - 0x14]
lea ecx, [eax + eax*8]
lea edx, [eax + ecx*4]
lea ecx, [eax + edx*2]
xor edx, edx
lea eax, [eax + ecx*4]
mov cl, byte [ebp - 8]
shl eax, 1
div dword [ebp - 0x18]
mov edx, eax
mov eax, 0x27e98ca1
mul edx
shr edx, 7
sub dl, 0x33
xor dl, cl
cmp ebx, 0x10ef
mov byte [ebp - 0xc], dl
jne 0x401e73
cmp dword [ebp - 0x18], 0x274
jne 0x401e28
mov esi, dword [ebp - 0xc]
mov dl, byte [ebp + 0xb]
and esi, 0xff
mov al, byte [ebp - 1]
mov ecx, esi
or cl, 0x82
sub ecx, 0x9d
shl dl, cl
mov ecx, dword [ebp - 0x1c]
or dl, al
mov eax, esi
shl eax, 9
add eax, esi
lea ecx, [ecx + eax*8]
mov byte [eax + ecx - 0x27739], dl
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x1c]
and eax, 0xff
xor eax, 0x177d0
lea eax, [edx + eax - 0x1773b]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0xc]
cmp eax, 0x5e
jb 0x401e55
cmp eax, 0x65f
jne 0x401e55
add dword [ebp - 0x20], 4
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x10]
add eax, 4
cmp eax, ecx
mov dword [ebp - 0x30], eax
jb 0x4019a7
mov eax, dword [ebp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x25
ja 0x401e42
mov eax, dword [ebp + 0xc]
push eax
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x401e42
pop edi
pop esi
mov eax, 0x20
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0xc]
pop edi
pop esi
and eax, 0xff
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
pop edi
pop esi
and eax, 0xff
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret