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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x48
mov edi, dword [ebp + 8]
mov eax, dword [0x7aa024]
xor eax, ebp
mov dword [ebp - 0x10], eax
xor eax, eax
dec eax
mov dword [ebp - 0x15], eax
mov dword [ebp - 0x18], eax
test edi, edi
je 0x525982
mov edx, dword [ebp + 0x10]
test edx, edx
je 0x52598a
mov eax, dword [ebp + 0xc]
mov dword [edx], 0
cmp eax, 0xa
ja case.default.0x52591f
mov ecx, dword [ebp + 0x14]
mov ebx, ecx
shr bl, 6
and bl, 1
jmp dword [eax*4 + 0x7556b4]
mov ebx, ecx
mov eax, dword [edi]
mov ecx, dword [edi + 0xc]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0x24], ecx
test eax, eax
je 0x525b58
push eax
push 0x754e6e
call fcn.0051c610
add esp, 8
test eax, eax
je 0x525b58
mov eax, dword [edi + 0x24]
test eax, eax
mov ecx, 0x743187
cmove eax, ecx
mov edx, 0x7461db
cmove edx, ecx
push eax
push edx
push dword [edi + 0x1c]
push str.file:___s_s_s
call fcn.0050d2c0
add esp, 0x10
mov edi, eax
jmp 0x525ea4
xor esi, esi
inc esi
jmp 0x525eb6
mov esi, 2
jmp 0x525eb6
mov esi, 9
jmp 0x525eb6
mov esi, 0xa
xor ebx, ebx
jmp 0x525a62
add edi, 4
mov esi, 0xb
jmp 0x525a62
add edi, 8
mov esi, 0xc
jmp 0x525a62
add edi, 0xc
mov esi, 0xd
jmp 0x525a62
add edi, 0x10
mov esi, 0xe
jmp 0x525a62
mov ebx, edi
mov edi, dword [edi + 0x18]
test cl, 1
je 0x525b06
test edi, edi
jne 0x525b06
mov eax, dword [ebx]
test eax, eax
je 0x525b06
mov esi, edx
push eax
call fcn.00520de0
add esp, 4
test eax, eax
je 0x525c1c
lea edi, [ebp - 0x18]
push dword [eax + 0x40]
push 0x74a208
push 7
push edi
call fcn.0050d0c0
add esp, 0x10
xor ecx, ecx
xor ebx, ebx
mov edx, esi
jmp 0x525a6e
mov esi, edi
mov edi, dword [edi + 0x1c]
test edi, edi
je 0x525bbd
xor ecx, ecx
jmp 0x525a6e
add edi, 0x20
and cl, 0x40
shr cl, 6
mov esi, 0x10
jmp 0x525a64
add edi, 0x24
mov esi, 0x11
jmp 0x525a62
add edi, 0x14
mov esi, 0x12
xor ecx, ecx
mov edi, dword [edi]
test edi, edi
je 0x525eb6
mov dword [ebp - 0x24], ecx
mov ecx, dword [fcn.00663270]
mov esi, edx
call dword [section..00cfg]
push edi
call ecx
add esp, 4
mov dword [esi], eax
test eax, eax
je 0x525eb1
mov edx, esi
cmp byte [ebp - 0x24], 0
je 0x525aab
movzx ecx, byte [eax]
cmp ecx, 0x2b
je 0x525aa5
test ecx, ecx
jne 0x525aa8
jmp 0x525aab
mov byte [eax], 0x20
inc eax
jmp 0x525a97
test bl, bl
je 0x525ead
lea eax, [ebp - 0x1c]
xor esi, esi
dec esi
mov dword [eax], esi
lea ecx, [ebp - 0x20]
mov dword [ecx], esi
xor edi, edi
push 3
push ecx
push eax
push edi
push dword [edx]
push edi
mov esi, edx
call fcn.004fd740
add esp, 0x18
mov dword [ebp - 0x24], eax
mov ecx, dword [fcn.005f2b80]
mov ebx, dword [esi]
call dword [section..00cfg]
push ebx
call ecx
add esp, 4
cmp dword [ebp - 0x24], 0
jne 0x525af4
mov edi, dword [ebp - 0x1c]
mov dword [esi], edi
mov esi, 6
jne 0x525eb6
jmp 0x525ead
mov esi, 0xf
test edi, edi
je 0x525eb6
mov eax, dword [ebx]
test eax, eax
je 0x525bee
push eax
call fcn.00520de0
add esp, 4
test eax, eax
je 0x525c26
mov ecx, dword [ebp + 0x14]
test cl, 2
mov edx, dword [ebp + 0x10]
je 0x525d67
mov ecx, dword [ebx + 0x30]
mov ebx, 0
cmp dword [eax + 0x40], ecx
mov ecx, 0
je 0x525eb6
jmp 0x525a6e
cmp dword [edi + 0x10], 0
je 0x525be4
mov eax, dword [edi]
test eax, eax
jne 0x525b7d
mov eax, 0x754e73
mov esi, 0xa
mov ecx, ebx
test cl, 4
je 0x525eb6
mov dword [ebp - 0x54], eax
push eax
call fcn.00520de0
add esp, 4
mov esi, eax
mov ecx, ebx
test cl, 1
je 0x525bf7
cmp dword [ebp - 0x24], 0
jne 0x525bf7
test esi, esi
je 0x525c44
lea eax, [ebp - 0x18]
push dword [esi + 0x40]
push 0x74a208
push 7
mov dword [ebp - 0x24], eax
push eax
call fcn.0050d0c0
mov ecx, ebx
add esp, 0x10
jmp 0x525c36
mov ecx, dword [fcn.00663270]
call dword [section..00cfg]
push 0x7461b4
call ecx
add esp, 4
mov dword [esi + 0x1c], eax
test eax, eax
je 0x525eb1
mov edi, eax
xor ecx, ecx
jmp 0x525c2a
mov esi, 0xe
jmp 0x525eb6
xor ecx, ecx
xor ebx, ebx
jmp 0x525a6e
cmp dword [ebp - 0x24], 0
je 0x525c32
test esi, esi
je 0x525c32
mov eax, dword [esi + 0x40]
xor ecx, ecx
cmp eax, dword [edi + 0x30]
mov eax, dword [ebp - 0x24]
cmovne ecx, eax
test bl, 2
cmovne eax, ecx
mov ecx, ebx
mov dword [ebp - 0x24], eax
jmp 0x525c36
mov esi, 0xf
jmp 0x525eb6
xor ecx, ecx
xor ebx, ebx
mov edx, dword [ebp + 0x10]
jmp 0x525a6e
test esi, esi
je 0x525c4b
mov eax, dword [esi + 0x4c]
shl eax, 0x15
sar eax, 0x1f
and dword [ebp - 0x2c], eax
jmp 0x525c4b
mov dword [ebp - 0x24], 0
mov eax, dword [edi + 0x10]
mov dl, byte [eax]
cmp dl, 0x5b
jne 0x525cd1
mov esi, dword [edi + 0x14]
test esi, esi
je 0x525d63
push eax
call fcn.0066b230
add esp, 4
mov ebx, eax
push esi
call fcn.0066b230
add esp, 4
mov edi, eax
mov dword [ebp - 0x28], ebx
lea esi, [ebx + eax]
add esi, 4
mov ecx, dword [fcn.005f2b30]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
test eax, eax
je 0x525eb1
mov esi, eax
mov eax, dword [ebp - 0x28]
dec eax
push eax
mov ebx, dword [ebp + 8]
push dword [ebx + 0x10]
push esi
call fcn.00650080
add esp, 0xc
add edi, 5
mov eax, dword [ebp - 0x28]
add eax, esi
dec eax
push dword [ebx + 0x14]
push str.__25_s_
push edi
mov edi, ebx
push eax
call fcn.0050d0c0
add esp, 0x10
jmp 0x525d71
test cl, 0x80
jne 0x525cef
lea ecx, [eax + 1]
xor esi, esi
cmp dl, 0x25
je 0x525ce9
movzx edx, dl
test edx, edx
jne 0x525cea
jmp 0x525d07
inc esi
mov dl, byte [ecx]
inc ecx
jmp 0x525cdb
xor ecx, ecx
push ecx
push eax
push ecx
call fcn.004fd640
add esp, 0xc
mov esi, eax
test eax, eax
jne 0x525d71
jmp 0x525eb1
test esi, esi
je 0x525d63
push eax
call fcn.0066b230
add esp, 4
lea esi, [eax + esi*2]
inc esi
mov ecx, dword [fcn.005f2b30]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
test eax, eax
je 0x525eb1
mov esi, eax
mov eax, dword [edi + 0x10]
mov ecx, esi
movzx edx, byte [eax]
cmp edx, 0x25
je 0x525d4a
test edx, edx
je 0x525d6e
mov byte [ecx], dl
inc ecx
jmp 0x525d60
mov dl, byte [0x7550bf]
mov byte [ecx + 2], dl
movzx edx, word [0x7550bd]
mov word [ecx], dx
add ecx, 3
inc eax
jmp 0x525d39
xor esi, esi
jmp 0x525d71
xor ebx, ebx
jmp 0x525a3c
mov byte [ecx], 0
mov dword [ebp - 0x28], esi
mov eax, dword [edi + 0x24]
test eax, eax
mov edx, 0x743187
cmove eax, edx
mov dword [ebp - 0x50], eax
mov eax, 0x7461db
cmove eax, edx
mov dword [ebp - 0x48], eax
mov eax, dword [edi + 0x20]
mov ecx, 0x743187
mov ebx, 0x743187
test eax, eax
je 0x525db5
cmp byte [eax], 0
mov ecx, 0x743187
cmove eax, ecx
mov ebx, 0x74619f
cmove ebx, ecx
mov ecx, eax
mov dword [ebp - 0x40], ecx
mov ecx, dword [edi + 0x1c]
mov eax, 0x7461b4
mov esi, ecx
test ecx, ecx
cmove esi, eax
mov dword [ebp - 0x3c], esi
je 0x525dd9
cmp byte [ecx], 0x2f
mov ecx, 0x743187
cmove eax, ecx
mov edx, eax
mov dword [ebp - 0x4c], edx
mov ecx, dword [ebp - 0x24]
test ecx, ecx
mov eax, 0x743187
cmove ecx, eax
mov dword [ebp - 0x24], ecx
mov ecx, 0x74378f
cmove ecx, eax
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x28]
mov ecx, eax
test eax, eax
jne 0x525e03
mov ecx, dword [edi + 0x10]
mov edx, dword [edi + 4]
mov edi, dword [edi + 8]
mov eax, 0x7555aa
test edx, edx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x34], ecx
jne 0x525e34
mov edx, 0x743187
test edi, edi
jne 0x525e34
cmp dword [ebp - 0x2c], 0
mov edx, 0x743187
mov eax, 0x7555aa
cmove eax, edx
xor edi, edi
mov dword [ebp - 0x30], edx
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
mov esi, 0x743187
cmove ebx, esi
mov ecx, 0x74a1ae
cmove ecx, esi
test edi, edi
cmove edi, esi
mov edx, eax
mov eax, 0x74378f
cmove eax, esi
push dword [ebp - 0x50]
push dword [ebp - 0x48]
push dword [ebp - 0x40]
push dword [ebp - 0x44]
push dword [ebp - 0x3c]
push dword [ebp - 0x4c]
push dword [ebp - 0x24]
push dword [ebp - 0x38]
push dword [ebp - 0x34]
push edx
push ebx
push ecx
push edi
push eax
push dword [ebp - 0x30]
push dword [ebp - 0x54]
push str._s:___s_s_s_s_s_s_s_s_s_s_s_s_s_s_s
call fcn.0050d2c0
add esp, 0x44
mov edi, eax
mov ecx, dword [fcn.005f2b80]
call dword [section..00cfg]
push dword [ebp - 0x28]
call ecx
add esp, 4
test edi, edi
mov eax, dword [ebp + 0x10]
je 0x525eb1
mov dword [eax], edi
xor esi, esi
jmp 0x525eb6
mov esi, 7
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0064d372
mov eax, esi
add esp, 0x48
pop esi
pop edi
pop ebx
pop ebp
ret