Function at 0x4518d0
Capabilities:
Encode data using base64
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4e18cd
mov eax, dword fs:[0]
push eax
sub esp, 0x248
mov eax, dword [0x55b090]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, edx
mov dword [ebp - 0x134], edi
mov ebx, ecx
mov dword [ebp - 0x138], ecx
lea ecx, [ebp - 0x1c]
call dword [sym.imp.mfc140u.dll_Ordinal_296]
mov dword [ebp - 4], 0
movzx eax, word [ebx]
test ax, ax
je 0x451db8
mov esi, eax
mov ecx, 0x7ff
cmp si, 0x24
je 0x451b33
cmp si, 0x26
je 0x451b33
cmp si, 0x2b
je 0x451b33
cmp si, 0x2c
je 0x451b33
cmp si, 0x2f
je 0x451b33
cmp si, 0x3a
je 0x451b33
cmp si, 0x3b
je 0x451b33
cmp si, 0x3d
je 0x451b33
cmp si, 0x3f
je 0x451b33
cmp si, 0x40
je 0x451b33
cmp si, 0x23
je 0x451b33
cmp si, 0x20
je 0x451b33
cmp si, 0x7f
jbe 0x451b23
mov edx, 0x5235e8
cmp si, cx
ja 0x451a37
lea ecx, [ebp - 0x140]
call fcn.004c6fd0
movzx ecx, si
or ecx, 0x3000
shr ecx, 6
push ecx
push dword [eax]
lea eax, [ebp - 0x18]
push 0xffffffffffffffff
push 4
push eax
call fcn.00465570
add esp, 0x14
lea ecx, [ebp - 0x140]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x1c]
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::operator]
movzx esi, word [ebx]
lea ecx, [ebp - 0x144]
and esi, 0x3f
mov edx, 0x5235e8
or esi, 0x80
call fcn.004c6fd0
push esi
push dword [eax]
lea eax, [ebp - 0x18]
push 0xffffffffffffffff
push 4
push eax
call fcn.00465570
lea ecx, [ebp - 0x144]
jmp 0x451afa
lea ecx, [ebp - 0x148]
call fcn.004c6fd0
movzx ecx, si
shr ecx, 0xc
or ecx, 0xe0
push ecx
push dword [eax]
lea eax, [ebp - 0x18]
push 0xffffffffffffffff
push 4
push eax
call fcn.00465570
add esp, 0x14
lea ecx, [ebp - 0x148]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x1c]
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::operator]
movzx esi, word [ebx]
lea ecx, [ebp - 0x14c]
and esi, 0xfc0
mov edx, 0x5235e8
or esi, 0x2000
shr esi, 6
call fcn.004c6fd0
push esi
push dword [eax]
lea eax, [ebp - 0x18]
push 0xffffffffffffffff
push 4
push eax
call fcn.00465570
add esp, 0x14
lea ecx, [ebp - 0x14c]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x1c]
call dword [0x513704]
movzx esi, word [ebx]
lea ecx, [ebp - 0x150]
and esi, 0x3f
mov edx, 0x5235e8
or esi, 0x80
call fcn.004c6fd0
push esi
push dword [eax]
lea eax, [ebp - 0x18]
push 0xffffffffffffffff
push 4
push eax
call fcn.00465570
lea ecx, [ebp - 0x150]
add esp, 0x14
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x1c]
call dword [0x513704]
lea ecx, [ebp - 0x1c]
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::GetBuffer]
mov esi, eax
test esi, esi
jne 0x451d5c
mov ax, word [ebx]
mov esi, 2
mov word [edi], ax
jmp 0x451d93
lea ecx, [ebp - 0x20]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__6]
push 0x1b
push ecx
lea ecx, [ebp - 0x128]
mov byte [ebp - 4], 1
call fcn.004a2e70
mov dh, byte [ebp - 0x28]
lea esi, [ebp - 0x128]
mov dl, byte [ebp - 0x24]
xor edi, edi
mov bl, byte [ebp - 0x27]
movzx eax, dh
add esi, eax
add bl, byte [esi]
lea ecx, [ebp - 0x128]
movzx eax, dl
lea esi, [ebp - 0x128]
add ecx, eax
inc dh
movzx eax, bl
mov dl, byte [ecx]
mov byte [ebp - 0x28], dh
mov byte [ebp - 0x27], bl
movzx eax, byte [ebp + eax - 0x128]
mov byte [ecx], al
movzx eax, byte [ebp - 0x25]
movzx ecx, byte [ebp - 0x27]
movzx eax, byte [ebp + eax - 0x128]
mov byte [ebp + ecx - 0x128], al
movzx eax, byte [ebp - 0x28]
movzx ecx, byte [ebp - 0x25]
movzx eax, byte [ebp + eax - 0x128]
mov byte [ebp + ecx - 0x128], al
movzx eax, byte [ebp - 0x28]
mov byte [ebp + eax - 0x128], dl
mov dh, byte [ebp - 0x28]
mov bl, byte [ebp - 0x27]
movzx eax, dl
mov dl, byte [ebp - 0x26]
add dl, byte [ebp + eax - 0x128]
mov byte [ebp - 0x26], dl
movzx eax, dh
add esi, eax
movzx eax, bl
mov dword [ebp - 0x13c], esi
movzx ecx, byte [ebp + eax - 0x128]
movzx eax, byte [esi]
add ecx, eax
movzx eax, dl
mov dl, byte [edi*2 + 0x5235e9]
movzx esi, cl
add dl, 0x80
movzx ecx, byte [ebp + eax - 0x128]
movzx eax, byte [ebp - 0x25]
movzx eax, byte [ebp + eax - 0x128]
add ecx, eax
movzx eax, byte [ebp - 0x24]
movzx eax, byte [ebp + eax - 0x128]
add ecx, eax
movzx eax, cl
movzx ecx, byte [ebp + eax - 0x128]
movzx eax, byte [edi*2 + 0x5235e8]
shl al, 4
or dl, al
mov cl, byte [ebp + ecx - 0x128]
xor cl, dl
mov byte [ebp - 0x129], dl
mov byte [ebp - 0x24], cl
movzx eax, byte [ebp + esi - 0x128]
xor al, cl
mov byte [ebp - 0x24], dl
mov byte [ebp - 0x25], al
test edi, edi
jle 0x451c7f
push dword [ebp - 0x25]
lea ecx, [ebp - 0x20]
call dword [sym.imp.mfc140u.dll_Ordinal_1697]
mov dl, byte [ebp - 0x129]
mov dh, byte [ebp - 0x28]
mov esi, dword [ebp - 0x13c]
inc edi
cmp edi, 7
jl 0x451b64
push dword [ebp - 0x20]
lea ecx, [ebp - 0x254]
call fcn.0045f760
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x130]
push dword [eax]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__18]
mov eax, dword [ebp - 0x254]
lea ecx, [ebp - 0x250]
mov ebx, dword [ebp - 0x138]
cmp eax, ecx
je 0x451ccf
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0
call dword [sym.imp.mfc140u.dll_Ordinal_1046]
movzx eax, word [ebx]
push eax
push dword [ebp - 0x130]
lea eax, [ebp - 0x18]
push 0xffffffffffffffff
push 4
push eax
call fcn.00465570
add esp, 0x14
lea ecx, [ebp - 0x130]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp - 0x18]
xor esi, esi
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x451d10
sub ecx, edx
sar ecx, 1
je 0x451d53
movzx eax, word [ebp + esi*2 - 0x18]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_toupper]
mov word [ebp + esi*2 - 0x18], ax
add esp, 4
lea eax, [ebp - 0x18]
inc esi
lea edx, [eax + 2]
nop dword [eax]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x451d40
sub eax, edx
sar eax, 1
cmp esi, eax
jb 0x451d21
mov edi, dword [ebp - 0x134]
lea esi, [ebp - 0x18]
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x451d61
sub ecx, edx
sar ecx, 1
push esi
lea eax, [ecx + 1]
push eax
push edi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
add esp, 0xc
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x451d82
sub esi, ecx
sar esi, 1
add esi, esi
movzx eax, word [ebx + 2]
add ebx, 2
add edi, esi
mov dword [ebp - 0x138], ebx
mov dword [ebp - 0x134], edi
mov esi, eax
mov ecx, 0x7ff
test ax, ax
jne 0x451931
xor eax, eax
lea ecx, [ebp - 0x1c]
mov word [edi], ax
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00482396
mov esp, ebp
pop ebp
ret