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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x9c
xor eax, eax
xor ecx, ecx
push ebx
mov dword [ebp - 0x78], eax
xor edx, edx
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 0x14]
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x54], edx
mov eax, dword [edi + 0x80]
mov ebx, dword [edi + 0x7c]
mov dword [ebp - 0x70], eax
mov eax, dword [edi]
mov dword [ebp - 8], ebx
mov dword [ebp - 0x50], edx
mov dword [ebp - 4], edx
mov ecx, dword [eax + 0x24]
xor eax, eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x58], eax
mov eax, esi
shr eax, 0x13
and eax, 1
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x28], eax
mov eax, esi
shr eax, 2
and eax, 1
mov dword [ebp - 0x6c], ecx
and dword [ebp - 0x68], 8
mov dword [ebp - 0x64], eax
mov eax, dword [edi + 0x20]
mov dword [ebp - 0x10], edx
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x7c], edx
je 0x415fb5
mov dword [ebx], 0x80090000
jmp 0x415fc0
test cl, 4
je 0x415fcd
mov dword [ebx], 0x80180005
mov dword [ebx + 4], 0x801a0000
add ebx, 8
mov dword [ebp - 8], ebx
test esi, 0x2000000
je 0x4160b1
mov esi, dword [ebp + 8]
cmp esi, eax
jae 0x41859f
cmp ebx, dword [ebp - 0x70]
jae 0x41861f
cmp dword [ebp - 0x28], 0
mov edx, esi
movzx ecx, word [esi]
mov dword [ebp - 0x4c], ecx
lea esi, [edx + 2]
je 0x41602e
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x41602b
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov dword [ebp - 0x4c], ecx
mov eax, dword [ebp + 0xc]
cmp dword [ebp - 0x64], 0
je 0x416099
cmp dword [ebp - 0x38], 0
mov edi, ebx
je 0x416065
mov ecx, dword [ebp + 0x14]
mov eax, edx
sub eax, dword [ecx + 0x1c]
mov ecx, dword [ebp - 0x38]
sar eax, 1
sub eax, dword [ecx + 4]
mov dword [ecx + 8], eax
lea eax, [ebx - 0x10]
cmp ecx, eax
mov ecx, dword [ebp - 0x4c]
jne 0x416065
mov eax, dword [ebp - 0x38]
cmp dword [eax + 0xc], 0xff
je 0x41607f
mov dword [ebp - 0x38], ebx
lea edi, [ebx + 0x10]
mov dword [ebx], 0x80060000
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0xff
mov eax, dword [ebp + 0x14]
mov ebx, edi
sub edx, dword [eax + 0x1c]
mov eax, dword [ebp - 0x38]
sar edx, 1
mov dword [eax + 4], edx
mov edx, eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x38], edx
jmp 0x41609c
mov edx, dword [ebp - 0x38]
mov dword [ebx], ecx
add ebx, 4
cmp esi, eax
jb 0x415fe4
mov edi, dword [ebp + 0x14]
jmp 0x41859f
mov ecx, dword [edi + 0x28]
add ecx, ecx
mov dword [ebp - 0x20], edx
mov eax, ecx
mov dword [ebp - 0x4c], 0xc
xor edx, edx
mov dword [ebp - 0x80], 0xfc00
div dword [ebp - 0x4c]
mov eax, dword [edi + 0x14]
sub eax, edx
mov dword [ebp - 0x84], 0xdc00
mov edx, dword [ebp + 0xc]
add eax, ecx
mov dword [ebp - 0x4c], eax
mov ecx, esi
mov eax, esi
or ecx, 0x80
and eax, 0x1000000
cmove ecx, esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x1c], ecx
xor ecx, ecx
jmp 0x416110
mov edx, dword [ebp + 0xc]
mov edi, dword [ebp + 0x14]
mov ecx, dword [ebp - 4]
nop word [eax + eax]
movzx eax, cx
mov dword [ebp - 0x98], eax
cmp esi, edx
jae 0x41857d
cmp ebx, dword [ebp - 0x70]
jae 0x41861f
mov edx, dword [edi]
movzx eax, cx
cmp eax, dword [edx + 0x20]
ja 0x418564
cmp dword [ebp - 0x28], 0
mov eax, esi
movzx edi, word [esi]
mov dword [ebp - 0xc], eax
mov ecx, edi
mov dword [ebp - 0x24], edi
lea esi, [eax + 2]
mov eax, esi
mov dword [ebp + 8], esi
mov dword [ebp - 0x14], eax
je 0x416195
mov eax, edi
mov dword [ebp - 0x14], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x416192
movzx eax, word [esi]
and edi, 0x3ff
and eax, 0x3ff
shl edi, 0xa
or edi, eax
add edi, 0x10000
add esi, 2
mov eax, esi
mov dword [ebp - 0x24], edi
mov dword [ebp + 8], esi
mov ecx, edi
mov dword [ebp - 0x14], eax
jmp 0x416195
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x44], 0
je 0x416212
cmp ecx, 0x5c
jne 0x4161bc
mov edx, dword [ebp + 0xc]
cmp eax, edx
jae 0x4161bc
cmp word [esi], 0x45
jne 0x4161bc
mov dword [ebp - 0x44], 0
lea esi, [eax + 2]
jmp 0x416104
cmp dword [ebp - 0x60], 0
jg case.0x416607.34
cmp dword [ebp - 0x58], 0
jne 0x4161f7
mov ecx, dword [ebp - 0x5c]
mov eax, ecx
dec ecx
mov dword [ebp - 0x5c], ecx
test eax, eax
jg 0x4161f7
push dword [ebp + 0x14]
lea eax, [ebp - 0x54]
push ebx
push dword [ebp - 0x64]
push eax
push dword [ebp - 0xc]
call fcn.00415eb0
mov ebx, eax
add esp, 0x14
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x38], eax
mov dword [ebx], edi
add ebx, 4
mov dword [ebp - 8], ebx
mov dword [ebp - 0x10], 1
mov dword [ebp - 0x50], 0
jmp 0x416101
cmp dword [ebp - 0x58], 0
je 0x416358
mov eax, dword [ebp - 0x1c]
and eax, 0x400080
cmp eax, 0x400080
jne 0x416277
cmp ecx, 0xff
jbe 0x416246
mov eax, ecx
or eax, 1
cmp eax, 0x200f
je 0x416246
cmp eax, 0x2029
jne 0x416277
cmp ecx, 0x100
jae 0x416358
cmp ecx, 0x23
je 0x416358
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0x10]
test byte [edi + eax], 1
jne 0x416358
cmp ecx, 0x85
je 0x416358
cmp ecx, 0x29
je 0x416302
cmp ecx, 0x5c
je 0x416299
mov dword [ebx], edi
add ebx, 4
mov dword [ebp - 0x10], 1
mov dword [ebp - 8], ebx
jmp 0x416101
mov ecx, dword [ebp - 0x1c]
test ecx, 0x400000
je 0x4162d7
push dword [ebp + 0x14]
lea eax, [ebp - 0x18]
push 0
push dword [edx + 0x24]
push ecx
push eax
lea eax, [ebp - 0x24]
push eax
push dword [ebp + 0xc]
lea eax, [ebp + 8]
push eax
call fcn.00410010
mov ecx, dword [ebp - 0x18]
add esp, 0x20
test ecx, ecx
jne 0x4184c4
mov esi, dword [ebp + 8]
mov edi, dword [ebp - 0x24]
jmp 0x4162d9
xor eax, eax
sub eax, 0
je case.0x41665c.37
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 4]
sub eax, 0x19
je 0x417ca5
sub eax, 1
jne 0x418253
mov dword [ebp - 0x44], 1
jmp 0x416104
mov eax, esi
mov dword [ebp - 0x58], 0
sub eax, dword [ebp - 0x7c]
sar eax, 1
dec eax
mov dword [ebp - 0x10], 0
cmp eax, 0xffff
jg 0x41826c
mov ecx, dword [ebp - 0x78]
mov eax, ebx
mov edx, dword [ebp + 0xc]
sub eax, ecx
mov edi, dword [ebp + 0x14]
sar eax, 2
dec eax
mov dword [ecx], eax
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 4]
test eax, eax
je 0x416110
mov dword [ebx], eax
add ebx, 4
mov dword [ebp - 8], ebx
mov dword [ebp - 0x74], 0
jmp 0x416107
cmp ecx, 0x5c
jne 0x416385
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp + 0xc]
jae 0x416385
movzx eax, word [esi]
cmp eax, 0x51
je 0x416372
cmp eax, 0x45
jne 0x416385
xor ecx, ecx
lea esi, [edx + 2]
cmp eax, 0x51
sete cl
mov dword [ebp - 0x44], ecx
jmp 0x416101
test byte [ebp - 0x1c], 0x80
je 0x416493
cmp ecx, 0x100
jae 0x4163a7
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0x10]
test byte [edi + eax], 1
jne 0x416101
cmp ecx, 0x85
je 0x416101
mov eax, ecx
or eax, 1
cmp eax, 0x200f
je 0x416101
cmp eax, 0x2029
je 0x416101
cmp ecx, 0x23
jne 0x416493
mov edx, dword [ebp + 0xc]
mov edi, dword [ebp + 0x14]
mov ecx, dword [ebp - 4]
cmp esi, edx
jae 0x416110
nop dword [eax + eax]
mov eax, dword [edi + 0x90]
mov ecx, dword [edi + 0x20]
test eax, eax
je 0x41641f
cmp esi, ecx
jae 0x41644f
push dword [ebp - 0x28]
add edi, 0x94
push edi
push ecx
push eax
push esi
call fcn.0041a290
add esp, 0x14
test eax, eax
jne 0x416483
mov edi, dword [ebp + 0x14]
jmp 0x41644c
mov edx, dword [edi + 0x94]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja 0x41644c
mov ax, word [esi]
cmp ax, word [edi + 0xa0]
jne 0x41644c
cmp edx, 1
je 0x416488
mov ax, word [esi + 2]
cmp ax, word [edi + 0xa2]
je 0x416488
mov edx, dword [ebp + 0xc]
add esi, 2
cmp dword [ebp - 0x28], 0
mov ecx, esi
je 0x416473
cmp esi, edx
jae 0x416473
mov ax, word [esi]
and ax, word [ebp - 0x80]
cmp ax, word [ebp - 0x84]
jne 0x416473
add esi, 2
mov ecx, esi
cmp ecx, edx
mov ecx, dword [ebp - 4]
jb 0x4163f0
jmp 0x416110
mov edx, dword [edi]
mov edi, dword [ebp + 0x14]
lea esi, [esi + edx*2]
mov edx, dword [ebp + 0xc]
jmp 0x416107
cmp ecx, 0x28
jne 0x4164d5
mov edx, dword [ebp + 0xc]
mov eax, edx
sub eax, esi
and eax, 0xfffffffe
cmp eax, 4
jl 0x416507
cmp word [esi], 0x3f
jne 0x416507
cmp word [esi + 2], 0x23
jne 0x416507
add esi, 2
cmp esi, edx
jae 0x41828b
cmp word [esi], 0x29
jne 0x4164b4
cmp esi, edx
jae 0x41828b
add esi, 2
jmp 0x416104
cmp ecx, 0x2a
je 0x416535
cmp ecx, 0x2b
je 0x416535
cmp ecx, 0x3f
je 0x416535
cmp ecx, 0x7b
jne 0x416507
lea eax, [ebp - 0x18]
mov dword [ebp - 0x40], esi
push eax
push 0
push 0
push dword [ebp + 0xc]
lea eax, [ebp - 0x40]
push eax
call fcn.00419ef0
add esp, 0x14
test eax, eax
jne 0x416535
mov ecx, dword [ebp - 0x5c]
mov eax, ecx
dec ecx
mov dword [ebp - 0x5c], ecx
test eax, eax
jg 0x416535
push dword [ebp + 0x14]
lea eax, [ebp - 0x54]
push ebx
push dword [ebp - 0x64]
push eax
push dword [ebp - 0xc]
call fcn.00415eb0
mov ebx, eax
add esp, 0x14
mov eax, dword [ebp - 0x54]
mov dword [ebp - 8], ebx
mov dword [ebp - 0x38], eax
mov edx, dword [ebp - 0x60]
test edx, edx
jle 0x416596
cmp edi, 0x28
jne case.0x416607.34
mov ecx, dword [ebp + 0xc]
mov eax, ecx
sub eax, esi
and eax, 0xfffffffe
cmp eax, 6
jl case.0x416607.34
movzx eax, word [esi]
cmp eax, 0x3f
je 0x416569
cmp eax, 0x2a
jne case.0x416607.34
cmp eax, 0x2a
movzx eax, word [esi + 2]
jne 0x4165f8
mov ecx, 0xff
cmp ax, cx
ja case.0x416607.34
mov ecx, eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0x10]
test byte [ecx + eax], 4
je case.0x416607.34
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xc], edx
xor edx, edx
mov dword [ebp - 0x60], edx
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x48], eax
mov eax, edx
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x50], 0
test eax, eax
je 0x416649
cmp edi, 0x3f
je 0x4165cc
cmp edi, 0x2b
jne 0x416649
cmp edi, 0x3f
mov ecx, 0x10000
mov edi, 0x20000
cmove ecx, edi
add ecx, eax
xor eax, eax
cmp edx, 0x803b0000
setne al
lea eax, [eax*8 - 0xc]
mov dword [eax + ebx], ecx
jmp 0x416101
add eax, 0xffffffdf
cmp eax, 0x22
ja case.0x416607.34
movzx eax, byte [eax + 0x418678]
jmp dword [eax*4 + 0x418668]
movzx eax, word [esi + 4]
cmp eax, 0x3d
je case.0x416607.33
cmp eax, 0x21
je case.0x416607.33
mov esi, dword [ebp - 0x14]
add esi, 0xfffffffe
mov eax, dword [ebp + 0x14]
mov ecx, 0x80
pop edi
sub esi, dword [eax + 0x1c]
sar esi, 1
mov dword [eax + 0x54], esi
mov eax, ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp edx, 2
jne case.0x416607.34
jmp case.0x416607.33
lea eax, [edi - 0x24]
cmp eax, 0x58
ja case.0x41665c.37
movzx eax, byte [eax + 0x4186d0]
jmp dword [eax*4 + 0x41869c]
mov eax, dword [ebp + 0x14]
mov edi, esi
push eax
push 0
mov dword [ebp - 0x40], edi
mov eax, dword [eax]
push dword [eax + 0x24]
lea eax, [ebp - 0x18]
push dword [ebp - 0x1c]
push eax
lea eax, [ebp - 0x24]
push eax
push ecx
lea eax, [ebp + 8]
push eax
call fcn.00410010
mov ecx, dword [ebp - 0x18]
add esp, 0x20
mov esi, dword [ebp + 8]
mov edx, eax
mov dword [ebp - 0xc], eax
test ecx, ecx
jne 0x4166a2
mov ecx, dword [ebp - 0x24]
jmp 0x416700
mov edi, dword [ebp - 0x40]
mov edx, dword [ebp + 0xc]
test byte [ebp - 0x6c], 2
je 0x418653
mov esi, edi
mov dword [ebp + 8], esi
cmp edi, edx
jb 0x4166bf
mov ecx, 0x5c
jmp 0x4166fb
cmp dword [ebp - 0x28], 0
lea esi, [edi + 2]
movzx ecx, word [edi]
mov dword [ebp + 8], esi
je 0x4166fb
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4166fb
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov dword [ebp + 8], esi
xor edx, edx
mov dword [ebp - 0xc], edx
test edx, edx
je 0x4169f8
js 0x41699c
lea eax, [edx - 6]
cmp eax, 0x16
ja case.0x416721.13
movzx eax, byte [eax + 0x418744]
jmp dword [eax*4 + 0x41872c]
test dword [ebp - 0x1c], 0x100000
je case.0x416721.12
mov ecx, 0xb7
mov dword [ebp - 0x18], ecx
jmp 0x4166a2
push dword [ebp + 0x14]
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0
push eax
lea eax, [ebp - 0x24]
mov dword [ebp - 0x24], 0
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp + 8]
push eax
call fcn.004159a0
add esp, 0x18
test eax, eax
jne 0x416879
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 0x18]
jmp 0x4166a2
mov ecx, dword [ebp + 0xc]
cmp esi, ecx
jae 0x416861
movzx eax, word [esi]
cmp eax, 0x7b
je 0x4167a6
cmp eax, 0x3c
je 0x4167ab
cmp eax, 0x27
jne 0x416861
cmp eax, 0x3c
jne 0x4167b2
mov edi, 0x3e
jmp 0x4167c2
cmp eax, 0x27
mov edi, 0x7d
mov eax, 0x27
cmove edi, eax
cmp edx, 0x1b
jne 0x41682e
cmp edi, 0x7d
je 0x41682e
lea eax, [esi + 2]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [ebp + 0x14]
push 0xa1
push 0xffff
push dword [eax + 0x74]
lea eax, [ebp - 0x14]
push ecx
push eax
call fcn.00419dc0
add esp, 0x1c
test eax, eax
je 0x416820
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp + 0xc]
cmp ecx, edx
jae 0x416810
movzx eax, word [ecx]
cmp eax, edi
je 0x4168c0
mov edi, dword [ebp - 0x40]
mov ecx, 0x9d
mov dword [ebp - 0x18], ecx
jmp 0x4166a5
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jne 0x41669f
mov ecx, dword [ebp + 0xc]
push dword [ebp + 0x14]
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x34]
push eax
push edi
push dword [ebp - 0x28]
lea eax, [ebp + 8]
push ecx
push eax
call fcn.00419b70
add esp, 0x24
test eax, eax
jne 0x4168ca
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 0x18]
jmp 0x41669f
cmp edx, 0x1b
mov ecx, 0xa9
mov eax, 0x9d
cmove ecx, eax
mov dword [ebp - 0x18], ecx
jmp 0x4166a2
cmp dword [ebp - 0x88], 0
je 0x416890
xor eax, eax
cmp dword [ebp - 0xc], 0xf
sete al
lea ecx, [eax + 0xf]
jmp 0x416893
mov ecx, dword [ebp - 0xc]
mov esi, dword [ebp + 8]
lea eax, [ecx - 0x7fe80000]
movzx ecx, word [ebp - 0x14]
mov dword [ebx], eax
movzx eax, word [ebp - 0x24]
shl ecx, 0x10
or ecx, eax
mov dword [ebp - 0x10], 1
mov dword [ebx + 4], ecx
add ebx, 8
mov dword [ebp - 8], ebx
jmp 0x416101
mov eax, dword [ebp - 0x2c]
mov esi, ecx
jmp 0x417f0f
cmp dword [ebp - 0xc], 0x1c
je 0x4168da
mov eax, 0x80210000
cmp edi, 0x7d
jne 0x4168df
mov eax, 0x80040000
mov edi, dword [ebp + 0x14]
mov dword [ebx], eax
jmp 0x4176e3
mov dword [ebp - 0x10], 1
lea eax, [edx - 0x7fe80000]
mov dword [ebx], eax
add ebx, 4
mov dword [ebp - 8], ebx
jmp 0x416101
test dword [ebp - 0x1c], 0x20000
mov dword [ebp - 0x10], 1
jne 0x416926
lea eax, [edx - 0x7fe80000]
mov dword [ebx], eax
invalid