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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
push ebx
push esi
mov ebx, ecx
push edi
mov edi, edx
mov dword [esp + 0x14], ebx
xor edx, edx
mov ebx, dword [ebx + 0xc]
inc edx
mov dword [esp + 0x18], ebx
test ebx, ebx
je 0x1001e26b
test edi, edi
jne 0x1001da63
push edi
push edi
push 0x79
pop edx
mov ecx, ebx
call fcn.10015483
pop ecx
pop ecx
jmp 0x1001e26b
movzx esi, byte [edi]
cmp esi, 0x58
jg 0x1001de13
je 0x1001de81
cmp esi, 0x40
jg 0x1001dcc3
je 0x1001dbfa
cmp esi, 0x1f
jg 0x1001dada
je 0x1001dab0
mov eax, esi
sub eax, 0x10
je 0x1001ddfc
dec eax
je 0x1001deae
sub eax, 4
jne 0x1001e25b
mov edx, dword [edi + 8]
call fcn.1001da26
jmp 0x1001dad3
mov edx, dword [edi + 8]
call fcn.1001da26
push 0
push 0
lea ecx, [edi + 0x14]
call fcn.1002108c
movsx edx, al
add edx, 0x29
mov ecx, ebx
call fcn.10015483
pop ecx
pop ecx
xor edx, edx
jmp 0x1001e25b
cmp esi, 0x30
je 0x1001db83
cmp esi, 0x3b
jle 0x1001e25b
cmp esi, 0x3d
jle 0x1001dce8
cmp esi, 0x3f
jne 0x1001e25b
mov eax, dword [edi + 0x10]
mov ebx, dword [edi + 8]
mov edx, ebx
mov edi, dword [eax + 0xc]
mov esi, dword [edi]
call fcn.1001da26
mov ecx, dword [esp + 0x18]
push 0
push 0
push 0x5d
pop edx
call fcn.10015483
mov ecx, dword [esp + 0x1c]
mov edx, esi
call fcn.1001da26
mov ecx, dword [esp + 0x1c]
mov edx, ebx
push 0
push 0
push 0x48
push esi
call fcn.1001c3ea
mov ecx, dword [esp + 0x30]
push 0
push 1
push 0x66
pop edx
call fcn.10015483
mov esi, dword [edi + 0xc]
mov edx, esi
mov ecx, dword [esp + 0x34]
call fcn.1001da26
mov ecx, dword [esp + 0x34]
xor edi, edi
push edi
push edi
push 0x46
push esi
mov edx, ebx
call fcn.1001c3ea
mov ecx, dword [esp + 0x48]
push edi
push edi
push 0x3d
pop edx
call fcn.10015483
add esp, 0x38
jmp 0x1001e258
mov eax, ecx
xor ebx, ebx
cmp dword [eax + 0xac], ebx
jne 0x1001db9f
push 0x100bd388
push eax
call fcn.1000b0e5
jmp 0x1001da5c
cmp dword [edi + 0x28], 4
je 0x1001dbc8
mov ecx, edi
call fcn.1001c7a2
mov eax, dword [edi + 0x18]
mov ecx, dword [esp + 0x18]
shr eax, 1
push eax
push dword [edi + 0x14]
push dword [edi + 0x28]
push 0x13
push 0x24
pop edx
call fcn.100154d6
jmp 0x1001dbf0
mov ecx, dword [esp + 0x18]
push ebx
push ebx
push 0x6c
pop edx
call fcn.10015483
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + 0xac]
push dword [eax + 0x10]
push ebx
push 0x5e
pop edx
call fcn.10015483
add esp, 0x10
mov edx, ebx
jmp 0x1001e25b
mov eax, ecx
mov edx, edi
mov esi, dword [eax + 0x28]
call fcn.1001d6dd
mov ecx, edi
call fcn.1001c376
mov ecx, dword [esp + 0x18]
xor ebx, ebx
push ebx
push 1
push 0x2f
pop edx
mov byte [esp + 0x1b], al
call fcn.10015483
mov ecx, dword [esp + 0x1c]
lea eax, [esi + 1]
mov dword [ecx + 0x28], eax
mov edx, dword [edi + 8]
call fcn.1001da26
mov ecx, dword [esp + 0x20]
mov esi, dword [ecx + 0x10]
lea eax, [esi + 4]
push eax
push 0xffffffffffffffff
push 0x42
pop edx
call fcn.10015483
mov ecx, dword [esp + 0x28]
push ebx
push 2
push 0xb
pop edx
call fcn.10015483
mov ecx, dword [esp + 0x30]
push ebx
push ebx
push 0x79
pop edx
call fcn.10015483
mov ecx, dword [esp + 0x38]
add esi, 7
push esi
push ebx
push 0x5e
pop edx
call fcn.10015483
mov ecx, dword [esp + 0x40]
push ebx
push 1
push 0x5a
pop edx
call fcn.10015483
lea ecx, [esp + 0x43]
mov edx, eax
push 1
push ecx
mov ecx, dword [esp + 0x50]
call fcn.100157dd
mov ecx, dword [esp + 0x50]
mov edx, 0x85
push esi
push dword [edi + 0x24]
call fcn.10015483
mov ecx, dword [esp + 0x58]
add esp, 0x40
push ebx
push 0xffffffffffffffff
push 0x27
pop edx
call fcn.10015483
pop ecx
pop ecx
jmp 0x1001e258
cmp esi, 0x55
jg 0x1001ddea
je 0x1001dd7f
cmp esi, 0x42
jle 0x1001dd3e
cmp esi, 0x48
jle 0x1001dd0d
lea eax, [esi - 0x4a]
cmp eax, 9
ja 0x1001e25b
mov edx, dword [edi + 8]
call fcn.1001da26
mov edx, dword [edi + 0xc]
mov ecx, dword [esp + 0x14]
call fcn.1001da26
push 0
push 0
mov edx, esi
mov ecx, ebx
call fcn.10015483
pop ecx
pop ecx
jmp 0x1001dd36
mov edx, dword [edi + 8]
mov ebx, ecx
call fcn.1001da26
mov edx, dword [edi + 0xc]
mov ecx, ebx
call fcn.1001da26
mov edx, dword [edi + 8]
mov ecx, ebx
push 0
push 0
push esi
push dword [edi + 0xc]
call fcn.1001c3ea
add esp, 0x10
or edx, 0xffffffff
jmp 0x1001e25b
push 0
push edx
push 0x2f
pop edx
mov ecx, ebx
call fcn.10015483
mov edx, dword [edi + 8]
mov ecx, dword [esp + 0x1c]
call fcn.1001da26
mov eax, dword [ebx + 0x10]
mov edx, esi
add eax, 2
mov ecx, ebx
push eax
push 1
call fcn.10015483
push 0
push 0xffffffffffffffff
push 0x27
pop edx
mov ecx, ebx
call fcn.10015483
add esp, 0x18
jmp 0x1001dad3
mov eax, dword [edi + 8]
mov dword [esp + 0x34], eax
mov cl, byte [eax]
cmp cl, 0x7d
je 0x1001dd92
cmp cl, 0x7c
jne 0x1001ddfc
push dword [eax + 0x14]
mov eax, dword [eax + 0x18]
shr eax, 1
push eax
push 0x100bd368
call fcn.1000a501
mov esi, eax
add esp, 0xc
mov eax, dword [esp + 0x34]
cmp byte [eax], 0x7d
jne 0x1001ddce
mov ecx, dword [eax + 0x18]
shr ecx, 1
inc ecx
push ecx
push esi
push 0
push 0
push 0x7d
pop edx
mov ecx, ebx
call fcn.100154d6
add esp, 0x10
jmp 0x1001dddf
mov eax, dword [eax + 0x18]
mov edx, esi
shr eax, 1
mov ecx, ebx
inc eax
push eax
call fcn.1001d95d
pop ecx
push esi
call fcn.1000af1e
jmp 0x1001dcbd
mov eax, esi
sub eax, 0x56
je 0x1001daa6
dec eax
jne 0x1001e25b
mov edx, dword [edi + 8]
mov ecx, dword [esp + 0x14]
call fcn.1001da26
push 0
push 0
mov edx, esi
jmp 0x1001daca
mov eax, 0x80
cmp esi, eax
jg 0x1001df05
je 0x1001ded1
mov eax, esi
sub eax, 0x5c
je 0x1001dec5
sub eax, 0x12
je 0x1001deae
sub eax, 0xe
je 0x1001de99
dec eax
je 0x1001de81
dec eax
je 0x1001de53
dec eax
jne 0x1001e25b
push eax
push dword [edi + 0x24]
mov ecx, ebx
jmp 0x1001dcb7
mov edx, dword [edi + 0x18]
mov ecx, 0x100bc7cc
mov eax, dword [edi + 0x14]
shr edx, 1
add eax, 2
sub edx, 3
push edx
cmovne ecx, eax
push ecx
push 0
push 0
push 0x7e
pop edx
mov ecx, ebx
call fcn.100154d6
add esp, 0x10
jmp 0x1001e258
mov ecx, edi
call fcn.1001c7a2
mov eax, dword [edi + 0x18]
mov edx, esi
shr eax, 1
push eax
push dword [edi + 0x14]
push 0
push 0
jmp 0x1001de72
mov eax, dword [edi + 0x18]
mov ecx, ebx
mov edx, dword [edi + 0x14]
shr eax, 1
push eax
call fcn.1001d95d
jmp 0x1001dcbd
cmp dword [edi + 0x28], 0
jne 0x1001debe
mov edx, edi
call fcn.1001d6dd
xor edx, edx
inc edx
push 0
push dword [edi + 0x28]
jmp 0x1001de4c
push 0
push 0
push 0x79
pop edx
jmp 0x1001de4c
push 0
push dword [edi + 0x24]
mov ecx, ebx
push 0x19
pop edx
call fcn.10015483
mov eax, dword [edi + 0x18]
xor edx, edx
shr eax, 1
inc edx
pop ecx
pop ecx
cmp eax, edx
jbe 0x1001e25b
push eax
push dword [edi + 0x14]
or edx, 0xffffffff
mov ecx, ebx
call fcn.100157dd
jmp 0x1001dcbc
sub esi, 0x81
je 0x1001e12e
sub esi, 0x13
je 0x1001df2a
dec esi
je 0x1001df9f
dec esi
je 0x1001df6e
dec esi
je 0x1001df42
dec esi
jne 0x1001e25b
mov eax, dword [edi + 0x10]
xor ebx, ebx
mov dword [esp + 0x20], eax
test eax, eax
je 0x1001dfce
mov edx, dword [eax]
jmp 0x1001dfd0
imul ecx, dword [edi + 0x30], 0x18
mov eax, dword [edi + 0x2c]
add ecx, dword [eax + 0x10]
cmp byte [eax], 0
jne 0x1001df5b
push 0
push dword [ecx + 0x10]
jmp 0x1001de4c
cmp byte [eax + 1], 0
je 0x1001df9f
push dword [ecx + 0xc]
push dword [eax + 4]
push 3
jmp 0x1001decb
mov eax, dword [edi + 0x2c]
test eax, eax
jne 0x1001df8c
lea eax, [edi + 0x1c]
push eax
push 0x100bd370
push ecx
call fcn.1000b0e5
add esp, 0xc
jmp 0x1001e258
mov ecx, dword [edi + 0x30]
mov eax, dword [eax + 0x20]
add ecx, ecx
push 0
push dword [eax + ecx*8 + 8]
jmp 0x1001de4c
cmp dword [edi + 0x24], 0
mov ecx, ebx
jge 0x1001dfbb
mov eax, dword [esp + 0x14]
push edx
mov eax, dword [eax + 0x28]
sub eax, dword [edi + 0x28]
dec eax
push eax
push 0x5d
jmp 0x1001dcb6
push dword [edi + 0x24]
mov edx, dword [edi + 0x3c]
push dword [edi + 0x28]
call fcn.1001d9b2
jmp 0x1001dcbc
mov edx, ebx
mov esi, ecx
mov dword [esp + 0x34], ebx
push ebx
mov dword [esp + 0x28], ebx
mov ecx, dword [esi]
mov eax, dword [ecx + 4]
mov eax, dword [eax + 0x14]
mov al, byte [eax + 0x79]
mov byte [esp + 0x34], al
push dword [esp + 0x34]
mov eax, dword [edi + 0x18]
push edx
mov edx, dword [edi + 0x14]
shr eax, 1
push eax
call fcn.10023993
mov edx, dword [esp + 0x30]
add esp, 0x10
mov ecx, esi
mov dword [esp + 0x1c], eax
call fcn.1001e2d4
mov edx, eax
mov dword [esp + 0x28], edx
cmp edx, 2
jl 0x1001e03e
test byte [edi + 2], 0x80
je 0x1001e03e
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0xc]
push dword [ecx + 0xc]
mov ecx, dword [esp + 0x20]
call fcn.1002fe64
mov edx, dword [esp + 0x2c]
pop ecx
mov dword [esp + 0x1c], eax
jmp 0x1001e051
test edx, edx
jle 0x1001e04d
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0xc]
push dword [eax]
jmp 0x1001e02a
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x28]
mov dword [esp + 0x2c], ebx
test edx, edx
jle 0x1001e0cf
mov edx, ebx
mov dword [esp + 0x30], edx
cmp edx, 0x180
jge 0x1001e0cf
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx + edx]
call fcn.1001cdbc
test eax, eax
je 0x1001e08b
mov ecx, dword [esp + 0x2c]
xor eax, eax
inc eax
shl eax, cl
or dword [esp + 0x34], eax
mov eax, dword [esp + 0x1c]
cmp byte [eax + 3], bl
je 0x1001e0b7
cmp dword [esp + 0x24], ebx
jne 0x1001e0b7
mov eax, dword [esp + 0x20]
mov ecx, esi
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x30]
mov edx, dword [edx + eax]
call fcn.1001c2ed
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
inc ecx
add edx, 0xc
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], edx
cmp ecx, edi
jl 0x1001e063
cmp byte [eax + 3], bl
je 0x1001e10b
cmp dword [esp + 0x24], ebx
jne 0x1001e0e3
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x24], eax
push ebx
push ebx
mov ebx, dword [esp + 0x20]
mov ecx, ebx
push 0xd
pop edx
call fcn.10015483
push 0xfffffffffffffffc
push dword [esp + 0x30]
mov edx, eax
mov ecx, ebx
call fcn.100157dd
mov eax, dword [esp + 0x2c]
add esp, 0x10
jmp 0x1001e10f
mov ebx, dword [esp + 0x18]
push 0xfffffffffffffffb
push eax
push edi
push dword [esp + 0x40]
mov ecx, ebx
push 0x14
pop edx
call fcn.100154d6
xor edx, edx
add esp, 0x10
inc edx
sub edx, edi
jmp 0x1001e25b
mov eax, dword [edi + 0x10]
mov ecx, dword [eax + 0xc]
mov esi, dword [eax]
mov dword [esp + 0x24], ecx
mov ecx, ebx
call fcn.10015502
mov edx, dword [edi + 8]
mov dword [esp + 0x2c], eax
test edx, edx
je 0x1001e155
mov ecx, dword [esp + 0x14]
call fcn.1001da26
xor ebx, ebx
test esi, esi
jle 0x1001e215
lea eax, [esi - 1]
mov esi, dword [esp + 0x18]
shr eax, 1
inc eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x24]
mov edx, dword [eax]
mov ecx, dword [esp + 0x14]
call fcn.1001da26
mov ecx, esi
cmp dword [edi + 8], ebx
je 0x1001e1bd
xor eax, eax
inc eax
push eax
push eax
push 0x5d
pop edx
call fcn.10015483
mov eax, dword [esp + 0x2c]
mov edx, dword [edi + 8]
mov ecx, dword [esp + 0x1c]
push 1
push ebx
push 0x43
push dword [eax]
call fcn.1001c3ea
push ebx
push 1
push 0xb
pop edx
mov ecx, esi
mov dword [esp + 0x54], eax
call fcn.10015483
add esp, 0x20
jmp 0x1001e1ce
push ebx
push 1
push 0x56
pop edx
call fcn.10015483
pop ecx
pop ecx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov edx, dword [eax + 0xc]
call fcn.1001da26
push dword [esp + 0x2c]
mov ecx, esi
push ebx
push 0x5e
pop edx
call fcn.10015483
push dword [esi + 0x10]
mov edx, dword [esp + 0x40]
mov ecx, esi
call fcn.1001571e
mov eax, dword [esp + 0x30]
add esp, 0xc
add eax, 0x18
dec dword [esp + 0x30]
mov dword [esp + 0x24], eax
jne 0x1001e171
jmp 0x1001e219
mov esi, dword [esp + 0x18]
cmp dword [edi + 8], ebx
je 0x1001e22d
push ebx
push 1
push 0xb
pop edx
mov ecx, esi
call fcn.10015483
pop ecx
pop ecx
mov edx, dword [edi + 0xc]
test edx, edx
je 0x1001e23f
mov ecx, dword [esp + 0x14]
call fcn.1001da26
jmp 0x1001e24d
push ebx
push ebx
push 0x79
pop edx
mov ecx, esi
call fcn.10015483
pop ecx
pop ecx
mov edx, dword [esp + 0x2c]
mov ecx, esi
call fcn.10015540
xor edx, edx
inc edx
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x28]
test eax, eax
je 0x1001e26b
add eax, edx
mov dword [ecx + 0x28], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret