Function at 0x405070
Capabilities:
Parse credit card information
Write file on windows

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x20
mov rbp, r8
mov r8d, edx
mov rdi, rcx
and r8d, 0xfff
mov esi, edx
cmp r8d, 0x17
je 0x405695
jbe 0x4052d1
cmp r8d, 0x26
je 0x405673
jbe 0x4051e4
cmp r8d, 0x45
je 0x405651
jbe 0x405180
lea rcx, str.CLSID
cmp r8d, 0x48
mov ebx, 0xfffffffe
je 0x4050f5
jbe 0x405330
lea rcx, str.VERSIONED_STREAM
cmp r8d, 0x49
je 0x4050f5
lea rcx, str.BSTR_BLOB
cmp r8d, 0xfff
jne 0x4051c0
mov r12d, esi
and r12d, 0xf000
cmp r12d, 0x4000
je 0x4055b0
mov rdx, rdi
call sub.msvcrt.dll_fputs
test esi, 0x1000
jne 0x405550
test esi, 0x2000
jne 0x405530
test esi, 0x4000
jne 0x405510
test r12d, r12d
mov eax, 4
jne 0x40516f
test rbp, rbp
je 0x40516c
and esi, 0x7ff
cmp esi, 8
setne al
cmp ebx, 0xfffffffe
je 0x4054c4
test ebx, ebx
jne 0x4054f0
test al, al
je 0x4054f0
lea eax, [rbx + 4]
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
cmp r8d, 0x42
je 0x4055f2
jbe 0x405230
lea rcx, str.STORAGE
cmp r8d, 0x43
mov ebx, 0xffffffff
je 0x4050f5
lea rcx, str.STREAMED_OBJECT
cmp r8d, 0x44
mov ebx, 0xfffffffe
je 0x4050f5
nop dword [rax]
lea rcx, [0x004146a0]
mov ebx, 0xffffffff
lea rdx, str.VT__08x
call sub.msvcrt.dll_sprintf
lea rcx, [0x004146a0]
jmp 0x4050f5
cmp r8d, 0x1c
je 0x405625
jbe 0x405290
cmp r8d, 0x1f
je 0x4055d0
mov ebx, 0xfffffffe
jbe 0x405261
lea rcx, str.RECORD
cmp r8d, 0x24
je 0x4050f5
lea rcx, str.INT_PTR
cmp r8d, 0x25
mov ebx, 4
je 0x4050f5
jmp 0x4051c0
lea rcx, str.FILETIME
cmp r8d, 0x40
mov ebx, 8
je 0x4050f5
lea rcx, str.BLOB
cmp r8d, 0x41
mov ebx, 0xfffffffe
je 0x4050f5
jmp 0x4051c0
lea rcx, str.USERDEFINED
cmp r8d, 0x1d
je 0x4050f5
lea rcx, str.LPSTR
cmp r8d, 0x1e
mov ebx, 4
je 0x4050f5
jmp 0x4051c0
cmp r8d, 0x19
je 0x405590
jb 0x405580
lea rcx, [0x0040f94b]
cmp r8d, 0x1a
mov ebx, 4
je 0x4050f5
lea rcx, str.SAFEARRAY
cmp r8d, 0x1b
mov ebx, 0xfffffffe
je 0x4050f5
jmp 0x4051c0
cmp r8d, 0xa
je 0x405684
jbe 0x4053d2
cmp r8d, 0x11
je 0x405662
jbe 0x405391
cmp r8d, 0x14
je 0x405614
jbe 0x405360
lea rcx, str.ULONGLONG
cmp r8d, 0x15
mov ebx, 8
je 0x4050f5
lea rcx, [0x0040f92d]
cmp r8d, 0x16
mov ebx, 4
je 0x4050f5
jmp 0x4051c0
lea rcx, str.BLOB_OBJECT
cmp r8d, 0x46
je 0x4050f5
lea rcx, [0x0040f9d8]
cmp r8d, 0x47
je 0x4050f5
jmp 0x4051c0
lea rcx, str.USHORT
cmp r8d, 0x12
mov ebx, 2
je 0x4050f5
lea rcx, str.UINT
cmp r8d, 0x13
mov ebx, 4
je 0x4050f5
jmp 0x4051c0
cmp r8d, 0xd
je 0x405603
jbe 0x405420
lea rcx, str.DECIMAL
cmp r8d, 0xe
mov ebx, 0x10
je 0x4050f5
lea rcx, str.CHAR
cmp r8d, 0x10
mov ebx, 1
je 0x4050f5
jmp 0x4051c0
cmp r8d, 4
je 0x405640
jbe 0x405480
cmp r8d, 7
je 0x4055e1
jbe 0x405451
lea rcx, str.BSTR
cmp r8d, 8
mov ebx, 0xfffffffe
je 0x4050f5
lea rcx, str.IDispatch_
add ebx, 1
cmp r8d, 9
je 0x4050f5
jmp 0x4051c0
lea rcx, str.WINBOOL
cmp r8d, 0xb
mov ebx, 2
je 0x4050f5
lea rcx, str.VARIANT
cmp r8d, 0xc
mov ebx, 0xffffffff
je 0x4050f5
jmp 0x4051c0
lea rcx, str.DOUBLE
cmp r8d, 5
mov ebx, 8
je 0x4050f5
lea rcx, [0x0040f8c1]
cmp r8d, 6
je 0x4050f5
jmp 0x4051c0
cmp r8d, 1
je 0x4055a1
test r8d, r8d
je 0x405570
lea rcx, str.short
cmp r8d, 2
mov ebx, 2
je 0x4050f5
lea rcx, str.long
cmp r8d, 3
mov ebx, 4
je 0x4050f5
jmp 0x4051c0
mov ebx, dword [rbp]
test ebx, ebx
jne 0x4054cf
test al, al
jne 0x4054e0
mov r9d, ebx
mov edx, esi
mov rcx, rdi
lea r8, [rbp + 4]
call fcn.00404870
add ebx, 4
lea eax, [rbx + 4]
jmp 0x40516f
mov r9d, ebx
mov r8, rbp
mov edx, esi
mov rcx, rdi
call fcn.00404870
lea eax, [rbx + 4]
jmp 0x40516f
mov r9, rdi
mov r8d, 6
mov edx, 1
lea rcx, str._byref
call sub.msvcrt.dll_fwrite
jmp 0x405138
mov r9, rdi
mov r8d, 6
mov edx, 1
lea rcx, str._array
call sub.msvcrt.dll_fwrite
jmp 0x40512c
mov r9, rdi
mov r8d, 7
mov edx, 1
lea rcx, str._vector
call sub.msvcrt.dll_fwrite
jmp 0x405120
lea rcx, str.EMPTY
xor ebx, ebx
jmp 0x4050f5
lea rcx, str.VOID
xor ebx, ebx
jmp 0x4050f5
lea rcx, str.HRESULT
mov ebx, 4
jmp 0x4050f5
lea rcx, str.NULL
xor ebx, ebx
jmp 0x4050f5
mov eax, 0x2a20
mov byte [0x004146a2], 0
mov word [0x004146a0], ax
jmp 0x40510c
lea rcx, str.LPWSTR
mov ebx, 4
jmp 0x4050f5
lea rcx, str.DATE
mov ebx, 0xffffffff
jmp 0x4050f5
lea rcx, str.STREAM
mov ebx, 0xffffffff
jmp 0x4050f5
lea rcx, str.IUnknown_
mov ebx, 0xffffffff
jmp 0x4050f5
lea rcx, str.LONGLONG
mov ebx, 8
jmp 0x4050f5
lea rcx, str.CARRAY
mov ebx, 0xfffffffe
jmp 0x4050f5
lea rcx, str.FLOAT
mov ebx, 4
jmp 0x4050f5
lea rcx, str.STORED_OBJECT
mov ebx, 0xffffffff
jmp 0x4050f5
lea rcx, str.UCHAR
mov ebx, 1
jmp 0x4050f5
lea rcx, str.UINT_PTR
mov ebx, 4
jmp 0x4050f5
lea rcx, str.SCODE
mov ebx, 4
jmp 0x4050f5
lea rcx, str.unsigned_int
mov ebx, 4
jmp 0x4050f5