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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ec54d
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 0x457728
mov esi, eax
mov ecx, 0x7ff
cmp si, 0x24
je 0x4574a3
cmp si, 0x26
je 0x4574a3
cmp si, 0x2b
je 0x4574a3
cmp si, 0x2c
je 0x4574a3
cmp si, 0x2f
je 0x4574a3
cmp si, 0x3a
je 0x4574a3
cmp si, 0x3b
je 0x4574a3
cmp si, 0x3d
je 0x4574a3
cmp si, 0x3f
je 0x4574a3
cmp si, 0x40
je 0x4574a3
cmp si, 0x23
je 0x4574a3
cmp si, 0x20
je 0x4574a3
cmp si, 0x7f
jbe 0x457493
mov edx, 0x5235e8
cmp si, cx
ja 0x4573a7
lea ecx, [ebp - 0x140]
call fcn.004a7880
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.0046caf0
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.004a7880
push esi
push dword [eax]
lea eax, [ebp - 0x18]
push 0xffffffffffffffff
push 4
push eax
call fcn.0046caf0
lea ecx, [ebp - 0x144]
jmp 0x45746a
lea ecx, [ebp - 0x148]
call fcn.004a7880
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.0046caf0
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.004a7880
push esi
push dword [eax]
lea eax, [ebp - 0x18]
push 0xffffffffffffffff
push 4
push eax
call fcn.0046caf0
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 [0x51370c]
movzx esi, word [ebx]
lea ecx, [ebp - 0x150]
and esi, 0x3f
mov edx, 0x5235e8
or esi, 0x80
call fcn.004a7880
push esi
push dword [eax]
lea eax, [ebp - 0x18]
push 0xffffffffffffffff
push 4
push eax
call fcn.0046caf0
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 [0x51370c]
lea ecx, [ebp - 0x1c]
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::GetBuffer]
mov esi, eax
test esi, esi
jne 0x4576cc
mov ax, word [ebx]
mov esi, 2
mov word [edi], ax
jmp 0x457703
lea ecx, [ebp - 0x20]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__6]
push 0x13
push ecx
lea ecx, [ebp - 0x128]
mov byte [ebp - 4], 1
call fcn.0043cc40
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 0x4575ef
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 0x4574d4
push dword [ebp - 0x20]
lea ecx, [ebp - 0x254]
call fcn.00466ce0
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__17]
mov eax, dword [ebp - 0x254]
lea ecx, [ebp - 0x250]
mov ebx, dword [ebp - 0x138]
cmp eax, ecx
je 0x45763f
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.0046caf0
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 0x457680
sub ecx, edx
sar ecx, 1
je 0x4576c3
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 0x4576b0
sub eax, edx
sar eax, 1
cmp esi, eax
jb 0x457691
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 0x4576d1
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 0x4576f2
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 0x4572a1
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.00489916
mov esp, ebp
pop ebp
ret