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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x50
mov esi, dword [ebp + 8]
mov eax, dword [0x7a9040]
xor eax, ebp
mov dword [ebp - 0x10], eax
xor eax, eax
dec eax
mov dword [ebp - 0x15], eax
mov dword [ebp - 0x18], eax
test esi, esi
je 0x512518
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x512511
mov ecx, dword [ebp + 0xc]
mov dword [eax], 0
cmp ecx, 0xa
ja case.default.0x512420
mov eax, dword [ebp + 0x14]
shr al, 6
mov edi, 0xa
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x38], esi
xor edx, edx
xor ebx, ebx
jmp dword [ecx*4 + 0x7499ec]
lea ecx, [esi + 0x20]
mov dword [ebp - 0x38], ecx
mov edi, 0x10
mov dword [ebp - 0x30], 0
mov ecx, eax
mov dword [ebp - 0x34], ecx
mov ebx, eax
xor edx, edx
jmp case.0x512420.1
lea ecx, [esi + 0x14]
mov dword [ebp - 0x38], ecx
mov edi, 0x12
jmp 0x5124b3
mov edi, 9
jmp 0x51251b
mov ecx, dword [esi + 0x1c]
test ecx, ecx
mov esi, 0x739906
cmovne esi, ecx
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x30], 0
mov ebx, eax
jmp 0x5124d3
lea ecx, [esi + 8]
mov dword [ebp - 0x38], ecx
mov edi, 0xc
jmp 0x5124b3
lea ecx, [esi + 4]
mov dword [ebp - 0x38], ecx
mov edi, 0xb
jmp 0x5124b3
lea ecx, [esi + 0x24]
mov dword [ebp - 0x38], ecx
mov edi, 0x11
jmp 0x5124b3
lea ecx, [esi + 0xc]
mov dword [ebp - 0x38], ecx
mov edi, 0xd
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x34], eax
xor edx, edx
xor ebx, ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x38]
mov esi, dword [eax]
mov ebx, dword [ebp - 0x34]
test esi, esi
je 0x51251b
push esi
call fcn.0066e590
add esp, 4
mov edi, eax
inc eax
push eax
push esi
call fcn.00508e80
add esp, 8
mov esi, dword [ebp + 0x10]
mov dword [esi], eax
test eax, eax
je 0x512565
test edi, edi
sete cl
mov edx, dword [ebp - 0x40]
not dl
or dl, cl
test dl, 1
mov edx, dword [ebp + 0x14]
jne 0x5125cc
xor ecx, ecx
jmp 0x5125c4
mov edi, 2
jmp 0x51251b
xor edi, edi
inc edi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00650d60
mov eax, edi
add esp, 0x50
pop esi
pop edi
pop ebx
pop ebp
ret
pcmpeqd xmm0, xmm0
lea ebx, [ebp - 0x28]
movdqu xmmword [ebx], xmm0
push 0x7a1200
push ebx
call fcn.004e8e60
add esp, 8
xor eax, eax
cmp dword [ebp + 0xc], 8
sete al
mov edx, dword [esi]
mov ecx, ebx
push eax
push 1
push edi
call fcn.00512a90
add esp, 0xc
test eax, eax
je 0x512593
mov edi, 7
jmp 0x51251b
lea ecx, [esi + 0x10]
mov dword [ebp - 0x38], ecx
mov edx, dword [ebp + 0x14]
mov ecx, edx
shr ecx, 0xc
and ecx, 1
mov dword [ebp - 0x30], ecx
shr edx, 0xd
and edx, 1
mov edi, 0xe
mov dword [ebp - 0x34], eax
jmp 0x5124bf
mov ecx, dword [fcn.005464a0]
mov edi, esi
mov esi, dword [esi]
call dword [0x7a29f4]
push esi
call ecx
add esp, 4
push ebx
call fcn.004e9140
add esp, 4
mov dword [edi], eax
xor edi, edi
jmp 0x51251b
mov byte [eax + ecx], 0x20
inc ecx
cmp edi, ecx
je 0x5125cc
cmp byte [eax + ecx], 0x2b
jne 0x5125bf
jmp 0x5125bb
test bl, 1
je 0x512627
lea eax, [ebp - 0x28]
xor edx, edx
dec edx
mov dword [eax], edx
lea ecx, [ebp - 0x2c]
mov dword [ecx], edx
push 3
push ecx
push eax
push 0
push dword [esi]
call fcn.004e9670
add esp, 0x14
mov edi, eax
mov ecx, dword [fcn.005464a0]
mov ebx, esi
mov esi, dword [esi]
call dword [0x7a29f4]
push esi
call ecx
add esp, 4
test edi, edi
je 0x51261a
mov dword [ebx], 0
mov edi, 6
jmp 0x51251b
mov eax, dword [ebp - 0x28]
mov dword [ebx], eax
mov edi, dword [ebp - 0x2c]
mov esi, ebx
mov edx, dword [ebp + 0x14]
test dl, dl
js 0x51252f
cmp byte [ebp - 0x30], 0
je 0x512655
mov edi, 0x1e
mov eax, dword [ebp + 8]
push dword [eax + 0x10]
call fcn.004f57a0
add esp, 4
test al, al
jne 0x5125b4
jmp 0x51251b
cmp byte [ebp - 0x3c], 0
mov esi, dword [ebp + 8]
je 0x5125b4
push dword [esi + 0x10]
call fcn.004f57a0
add esp, 4
test al, al
je 0x5125b4
push 4
push dword [esi + 0x10]
push 0x7498fe
call fcn.0066e620
add esp, 0xc
test eax, eax
jne 0x5125b4
mov edi, 0x1e
jmp 0x51251b
mov ebx, dword [ebp + 0x14]
mov ecx, dword [esi]
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x34], eax
mov edx, dword [esi + 0x18]
mov dword [ebp - 0x38], edx
test ecx, ecx
mov edi, esi
je 0x51271e
push ecx
push str.file
call fcn.00508c30
add esp, 8
test eax, eax
je 0x51271e
mov eax, dword [edi + 0x24]
test eax, eax
mov ecx, 0x736aef
cmove eax, ecx
mov edx, 0x739982
cmove edx, ecx
push eax
push edx
push dword [edi + 0x1c]
push str.file:___s_s_s
call fcn.004f8cc0
add esp, 0x10
mov esi, eax
test esi, esi
je 0x512565
mov eax, dword [ebp + 0x10]
mov dword [eax], esi
jmp 0x5125b4
mov eax, str.https
mov edi, 0xa
mov ecx, ebx
test cl, 4
je 0x51251b
jmp 0x51272a
mov edi, 0xe
jmp 0x51251b
cmp dword [edi + 0x10], 0
je 0x512714
mov eax, dword [edi]
test eax, eax
je 0x5126fd
push 0xffffffffffffffff
mov dword [ebp - 0x3c], eax
push eax
call fcn.0050d5e0
mov edx, ebx
add esp, 8
mov esi, eax
mov edi, dword [ebp - 0x38]
test edi, edi
setne al
test dl, 1
sete cl
or cl, al
je 0x512795
test edi, edi
setne al
test esi, esi
setne cl
and cl, al
cmp cl, 1
je 0x51276b
test esi, esi
mov edi, dword [ebp + 8]
mov ebx, dword [ebp - 0x34]
jne 0x5127ba
jmp 0x5127c5
mov ebx, edi
mov eax, dword [esi + 0x40]
xor ecx, ecx
mov edi, dword [ebp + 8]
cmp eax, dword [edi + 0x28]
cmovne ecx, ebx
test dl, 2
cmovne ebx, ecx
mov dword [ebp - 0x38], ebx
jmp 0x5127b7
mov dword [ebp - 0x38], 0
mov edi, dword [ebp + 8]
mov ebx, dword [ebp - 0x34]
jmp 0x5127c5
test esi, esi
je 0x512786
lea eax, [ebp - 0x18]
push dword [esi + 0x40]
push 0x73d8ad
push 7
mov dword [ebp - 0x38], eax
push eax
call fcn.004f8ae0
mov edx, ebx
add esp, 0x10
mov edi, dword [ebp + 8]
mov ebx, dword [ebp - 0x34]
mov eax, dword [esi + 0x4c]
shl eax, 0x15
sar eax, 0x1f
and ebx, eax
mov eax, dword [edi + 0x10]
cmp byte [eax], 0x5b
mov dword [ebp - 0x34], ebx
je 0x51281a
test dl, dl
js 0x512801
bt edx, 0xc
jb 0x512a4c
mov dword [ebp - 0x30], 0
bt edx, 0xd
jae 0x512877
push eax
call fcn.004f57a0
add esp, 4
test al, al
je 0x512877
jmp 0x512a6e
xor ecx, ecx
push ecx
push eax
push ecx
call fcn.004e9580
add esp, 0xc
mov dword [ebp - 0x30], eax
test eax, eax
jne 0x512877
jmp 0x512565
cmp dword [edi + 0x14], 0
je 0x512870
pcmpeqd xmm0, xmm0
lea ebx, [ebp - 0x28]
movdqu xmmword [ebx], xmm0
push eax
call fcn.0066e590
add esp, 4
mov esi, eax
push 0x7a1200
push ebx
call fcn.004e8e60
add esp, 8
dec esi
push dword [edi + 0x14]
push dword [edi + 0x10]
push esi
push str._.s__25_s_
push ebx
call fcn.004e90f0
add esp, 0x14
test eax, eax
jne 0x512565
push ebx
call fcn.004e9140
add esp, 4
mov dword [ebp - 0x30], eax
jmp 0x512877
mov dword [ebp - 0x30], 0
mov esi, dword [ebp + 8]
mov ebx, dword [esi + 0x24]
test ebx, ebx
mov ecx, 0x736aef
cmove ebx, ecx
mov eax, 0x739982
cmove eax, ecx
mov dword [ebp - 0x58], eax
mov eax, dword [esi + 0x20]
mov edi, 0x736aef
mov dword [ebp - 0x40], 0x736aef
test eax, eax
je 0x5128b8
cmp byte [eax], 0
cmove eax, edi
mov edx, str._ahslmd
cmove edx, edi
mov dword [ebp - 0x40], edx
mov edi, eax
mov eax, dword [esi + 0x1c]
test eax, eax
mov edx, 0x739906
cmovne edx, eax
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0x38]
test eax, eax
cmove eax, ecx
mov dword [ebp - 0x38], eax
mov eax, 0x736ed5
cmove eax, ecx
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x30]
mov ecx, eax
test eax, eax
jne 0x5128ea
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x48], ecx
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
mov eax, 0x743a93
test ecx, ecx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x54], edi
je 0x512974
mov dword [ebp - 0x44], ecx
mov edi, dword [ebp - 0x34]
test edi, edi
mov esi, 0x736aef
cmove edi, esi
mov ebx, 0x743d43
cmove ebx, esi
test edx, edx
cmove edx, esi
mov ecx, eax
mov eax, 0x736ed5
cmove eax, esi
push dword [ebp - 0x5c]
push dword [ebp - 0x58]
push dword [ebp - 0x54]
push dword [ebp - 0x40]
push dword [ebp - 0x50]
push dword [ebp - 0x38]
push dword [ebp - 0x4c]
push dword [ebp - 0x48]
push ecx
push edi
push ebx
push edx
push eax
push dword [ebp - 0x44]
push dword [ebp - 0x3c]
push str._s:___s_s_s_s_s_s_s_s_s_s_s_s_s_s
call fcn.004f8cc0
add esp, 0x40
mov esi, eax
mov ecx, dword [fcn.005464a0]
call dword [0x7a29f4]
push dword [ebp - 0x30]
call ecx
add esp, 4
jmp 0x5126eb
mov ecx, 0x736aef
test edx, edx
jne 0x512902
cmp dword [ebp - 0x34], 0
cmove eax, ecx
xor edx, edx
jmp 0x512902
mov eax, dword [esi + 0x18]
test eax, eax
setne dl
mov ebx, dword [ebp + 0x14]
test bl, 1
sete cl
or cl, dl
mov edi, esi
jne 0x5129fc
mov eax, dword [edi]
test eax, eax
je 0x5129f2
push 0xffffffffffffffff
push eax
call fcn.0050d5e0
add esp, 8
test eax, eax
mov edi, 0xf
je 0x51251b
lea esi, [ebp - 0x18]
push dword [eax + 0x40]
push 0x73d8ad
push 7
push esi
call fcn.004f8ae0
add esp, 0x10
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x30], 0
xor ebx, ebx
jmp 0x5124d3
mov edi, 0xf
jmp 0x51251b
test eax, eax
je 0x5129f2
mov esi, eax
mov eax, dword [edi]
test eax, eax
je 0x5129d6
push 0xffffffffffffffff
push eax
call fcn.0050d5e0
add esp, 8
test eax, eax
je 0x5129d6
mov dword [ebp - 0x40], 0
test bl, 2
je 0x5129dd
mov ecx, dword [edi + 0x28]
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x30], 0
mov ebx, 0
cmp dword [eax + 0x40], ecx
mov edi, 0xf
je 0x51251b
jmp 0x5124d3
mov edi, 0x1e
mov dword [ebp - 0x30], 0
push eax
call fcn.004f57a0
add esp, 4
test al, al
je 0x51251b
jmp 0x512877
push 4
mov eax, dword [ebp + 8]
push dword [eax + 0x10]
push 0x7498fe
call fcn.0066e620
add esp, 0xc
test eax, eax
jne 0x512877
jmp 0x51268f