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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4e7bbd
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 0x439368
mov esi, eax
mov ecx, 0x7ff
cmp si, 0x24
je 0x4390e3
cmp si, 0x26
je 0x4390e3
cmp si, 0x2b
je 0x4390e3
cmp si, 0x2c
je 0x4390e3
cmp si, 0x2f
je 0x4390e3
cmp si, 0x3a
je 0x4390e3
cmp si, 0x3b
je 0x4390e3
cmp si, 0x3d
je 0x4390e3
cmp si, 0x3f
je 0x4390e3
cmp si, 0x40
je 0x4390e3
cmp si, 0x23
je 0x4390e3
cmp si, 0x20
je 0x4390e3
cmp si, 0x7f
jbe 0x4390d3
mov edx, 0x5235e8
cmp si, cx
ja 0x438fe7
lea ecx, [ebp - 0x140]
call fcn.004d3680
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.0046fe20
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.004d3680
push esi
push dword [eax]
lea eax, [ebp - 0x18]
push 0xffffffffffffffff
push 4
push eax
call fcn.0046fe20
lea ecx, [ebp - 0x144]
jmp 0x4390aa
lea ecx, [ebp - 0x148]
call fcn.004d3680
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.0046fe20
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.004d3680
push esi
push dword [eax]
lea eax, [ebp - 0x18]
push 0xffffffffffffffff
push 4
push eax
call fcn.0046fe20
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.004d3680
push esi
push dword [eax]
lea eax, [ebp - 0x18]
push 0xffffffffffffffff
push 4
push eax
call fcn.0046fe20
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 0x43930c
mov ax, word [ebx]
mov esi, 2
mov word [edi], ax
jmp 0x439343
lea ecx, [ebp - 0x20]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__6]
push 0x10
push ecx
lea ecx, [ebp - 0x128]
mov byte [ebp - 4], 1
call fcn.004d37f0
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 0x43922f
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 0x439114
push dword [ebp - 0x20]
lea ecx, [ebp - 0x254]
call fcn.0046a010
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 0x43927f
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.0046fe20
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 0x4392c0
sub ecx, edx
sar ecx, 1
je 0x439303
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 0x4392f0
sub eax, edx
sar eax, 1
cmp esi, eax
jb 0x4392d1
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 0x439311
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 0x439332
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 0x438ee1
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.0048cc46
mov esp, ebp
pop ebp
ret