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

Disassembly:
push esi
mov esi, ecx
mov eax, dword [esi + 0x44]
inc dword [esi + 0x10]
push edi
test eax, 0x8000000
jne 0x1000824a
cmp dword [esi + 0x40], 0x29
jne 0x1000824a
push 5
call fcn.10062cd0
add esp, 4
dec dword [esi + 0x10]
pop edi
mov al, 1
mov esi, dword [esp]
pushfd
push eax
push ecx
bsf cx, ax
lahf
cmp eax, 0xd2
push ebx
xchg bh, bh
add bh, 0x67
aad 0xa
inc cx
clc
bt ecx, 1
ror ebx, 1
cmc
sahf
das
das
aam 0xa
neg bx
sahf
not ax
dec bh
sar bl, 4
mov ebx, dword [esp]
push ebx
lea ecx, [ecx + 0x424a]
push edx
not cx
pop eax
push edx
xor edx, edx
mov eax, 0xc09a
mov ecx, 0x1622
div ecx
mov eax, dword [esp + 0x14]
push eax
popfd
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp]
lea esp, [esp + 0x18]
lea esp, [esp + 4]
ret
test al, 0x20
je 0x1000832a
cmp dword [esi + 0x40], 0x3f
jne 0x1000832a
call fcn.10007fb0
mov edi, dword [esi + 0x40]
mov ecx, esi
call fcn.10007fb0
cmp edi, 0x3a
jne 0x10008283
mov ecx, esi
call fcn.10005450
dec dword [esi + 0x10]
pop edi
mov al, 1
pop esi
ret
cmp edi, 0x21
jne 0x100082a2
jmp 0x10008291
push 1
mov ecx, esi
call fcn.1001f1e0
dec dword [esi + 0x10]
pop edi
xor al, al
pop esi
ret
cmp edi, 0x3d
jne 0x100082bc
push 0
mov ecx, esi
call fcn.1001f1e0
dec dword [esi + 0x10]
pop edi
xor al, al
pop esi
ret
push 0xe
call fcn.10062cd0
add esp, 4
dec dword [esi + 0x10]
mov edi, dword [esp]
pushfd
push ecx
not cx
stc
push eax
aad 0xa
push edx
rol dx, 2
sub al, 0xac
push ebx
not ebx
dec edx
dec ch
lahf
sub edx, edx
stc
bsf ecx, ecx
neg bl
push eax
or ax, cx
stc
aam 0xa
sahf
not bl
mov ebx, dword [esp + 4]
dec eax
cmc
push ebx
lahf
aas
xor edx, edx
mov eax, 0xa25a
mov ecx, 0x9f21
div ecx
mov eax, dword [esp + 0x18]
push eax
popfd
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
lea esp, [esp + 0x1c]
lea esp, [esp + 4]
mov al, 1
pop esi
ret
test dword [esi + 0x38], 0x200
jne 0x10008276
call fcn.10005220
dec dword [esi + 0x10]
pop edi
mov al, 1
mov esi, dword [esp]
pushfd
push eax
aas
push ebx
inc bh
rol eax, 6
push edx
cwd
aaa
nop
cbw
cdq
push ecx
sahf
not bl
mov ebx, dword [esp + 8]
push ecx
xadd edx, ecx
xor edx, edx
mov eax, 0x202b
mov ecx, 0x5bbe
div ecx
mov ecx, dword [esp]
not al
push ebx
pop eax
neg ah
mov eax, dword [esp + 0x10]
dec edx
mov edx, dword [esp + 0x14]
push edx
popfd
mov edx, dword [esp + 8]
lea esp, [esp + 0x18]
lea esp, [esp + 4]
ret
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 0x40]
push edi
xor ebx, ebx
or edi, 0xffffffff
cmp eax, 0x2a
jmp 0x1001c84f
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1001c68a
cmp ecx, 0x7d
jne 0x1001c68c
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.10007a30
test dword [esi + 0x44], 0x400
jmp 0x1001c719
push edi
push ebx
lea ecx, [esi + 0x18]
call fcn.1001b600
mov edi, dword [esp]
pushfd
push ecx
dec cx
push edx
cwd
push eax
or eax, 0x35
dec eax
dec edx
aaa
push ecx
xor al, ah
das
mov ch, 0x79
mov ax, 0x72
push ebx
or ebx, 0xffff94d7
daa
cmp eax, edx
sahf
push ebx
xadd eax, eax
inc cx
or ch, ch
cbw
bswap edx
bt ebx, 0
cbw
sub ebx, ecx
mov ebx, dword [esp + 4]
aam 0xa
aas
nop
mov eax, 0x9d93
mov ecx, 0xc507
mul ecx
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
dec cl
mov ecx, dword [esp + 0x18]
push ecx
popfd
mov ecx, dword [esp + 0x14]
lea esp, [esp + 0x1c]
lea esp, [esp + 4]
pop esi
pop ebx
ret
je 0x1001c91b
cmp dword [esi + 0x40], 0x3f
jne 0x1001c91b
mov ecx, esi
call fcn.10007fb0
push 0
push edi
lea esp, [esp - 4]
pushfd
push ebx
inc bh
sar bl, 5
push eax
aam 0xa
push edx
cwd
mov ax, 0x76
push ecx
mov cx, 0x3c
mul cx
mov edx, dword [esp + 4]
cmp dx, ax
test eax, 0xffff8384
cmp cl, 0xd8
neg ch
mov ecx, dword [esp]
daa
sahf
lahf
bt bx, 0
mov ebx, dword [esp + 0xc]
inc ah
and al, 0xbe
aad 0xa
bswap eax
aaa
aas
mov eax, dword [esp + 0x10]
push eax
popfd
mov eax, 0x55
mov eax, dword [esp + 8]
lea esp, [esp + 0x14]
mov dword [esp], ebx
lea ecx, [esi + 0x18]
call fcn.1001b600
pop edi
pop esi
pop ebx
jmp 0x1001c91a
mov eax, dword [esi + 0x1c]
or dword [eax + 8], 4
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1001c68f
cmp word [eax], 0x5c
jne 0x1001c68c
add eax, 2
cmp eax, ecx
je 0x1001c840
test byte [esi + 0x44], 8
jne 0x1001c840
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x1001c68a
cmp ecx, 0x29
je 0x1001c68a
test byte [esi + 0x44], 0x10
jne 0x1001c68c
jmp 0x1001c675
je 0x1001c7f8
cmp eax, 0x2b
jne 0x1001c866
lea ebx, [edi + 2]
jmp 0x1001c7f8
cmp eax, 0x3f
jne 0x1001c877
lea edi, [eax - 0x3e]
jmp 0x1001c7f8
cmp eax, 0x7b
jne 0x1001c6ac
call fcn.10007fb0
push 0x7fffffff
push 0xa
mov ecx, esi
push 0x3efc8eb
pushfd
push eax
daa
cbw
push ecx
neg cx
push ebx
lea eax, [ebx - 0x34bd]
push edx
inc edx
cdq
push edx
stc
xor edx, edx
mov eax, 0xcbe
mov ecx, 0x884a
div ecx
mov edx, dword [esp + 4]
aas
aam 0xa
shr cx, 2
aam 0xa
sub bx, 0x41fb
inc ax
not eax
inc ecx
mov ecx, dword [esp + 0xc]
clc
sub ebx, eax
mov eax, dword [esp + 0x14]
push eax
popfd
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 8]
lea esp, [esp + 0x18]
jmp fcn.10008b20
ret
push 1
jmp 0x1001c6a2
push esi
mov esi, ecx
xor al, al
cmp dword [esi + 0x40], 0xffff
je 0x1001ec00
push ebx
mov ecx, dword [esi + 0x40]
cmp ecx, 0x7c
je 0x1001ebff
xor ebx, ebx
cmp ecx, 0x29
jne 0x1001e72f
cmp dword [esi + 0x10], ebx
jne 0x1001ebff
mov eax, 0x10000000
test dword [esi + 0x44], eax
jne 0x1001e734
push 5
call fcn.10062cd0
add esp, 4
jo 0x1001eb6c
pushfd
push eax
aaa
push edx
cdq
push ebx
xchg bx, bx
push ecx
dec cl
bt dx, 2
cmc
cmc
ror bh, 1
clc
shl al, 4
dec eax
dec bh
sub cl, al
bsf ebx, eax
cmc
bsf dx, dx
test cx, 0xc2c
push ebx
bswap edx
xor bx, cx
daa
daa
lahf
daa
mov eax, dword [esp + 0x10]
neg ch
mov ebx, dword [esp + 0x14]
push ebx
popfd
lea ebx, [ecx + edx - 0x3e5b]
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xc]
lea esp, [esp + 0x18]
jno 0x1001eb6c
mov eax, 0x10000000
cmp ecx, 0x2e
jne 0x1001eb1d
push 0x14
call fcn.10064745
add esp, 4
cmp eax, ebx
je 0x1001e802
mov dword [eax], 0x3f5d460
mov dword [eax + 4], 5
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
jmp 0x1001e7fa
jne 0x1001e782
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x1001e7a1
cmp ecx, 0x29
je 0x1001e7a1
test byte [esi + 0x44], 0x10
jne 0x1001e7a3
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1001e7a1
cmp ecx, 0x7d
jne 0x1001e7a3
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.10007a30
mov eax, dword [esi + 0x44]
and eax, 0x80
je 0x1001e7da
cmp word [esi + 0x3e], 0x62
jne 0x1001e7da
lea ecx, [esi + 0x18]
call fcn.100023a0
mov ecx, esi
call fcn.10007fb0
jmp 0x1001ebf0
cmp eax, ebx
je 0x1001eb58
cmp word [esi + 0x3e], 0x42
jne 0x1001eb58
lea ecx, [esi + 0x18]
call fcn.100023a0
jmp 0x1001eb42
mov dword [eax + 0x10], ebx
jmp 0x1001e804
xor eax, eax
mov ecx, dword [esi + 0x1c]
mov dword [eax + 0x10], ecx
mov edx, dword [esi + 0x1c]
mov ecx, dword [edx + 0xc]
cmp ecx, ebx
je 0x1001e824
mov dword [eax + 0xc], ecx
mov ecx, dword [esi + 0x1c]
mov edx, dword [ecx + 0xc]
mov dword [edx + 0x10], eax
mov ecx, dword [esi + 0x1c]
mov dword [ecx + 0xc], eax
mov dword [esi + 0x1c], eax
jmp 0x1001eaac
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x1001e866
cmp ecx, 0x29
je 0x1001e866
test byte [esi + 0x44], 0x10
jne 0x1001e868
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1001e866
cmp ecx, 0x7d
jne 0x1001e868
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.10007a30
mov ecx, esi
call fcn.1001dff0
push 4
push 0x5d
mov ecx, esi
call fcn.100080a0
jmp 0x1001eb6c
cmp ecx, 0x28
jne 0x1001ec02
mov ecx, esi
call fcn.10007fb0
mov ecx, esi
push 0x3efe985
nop
lea esp, [esp - 0x38]
pushfd
pushfd
push eax
neg ah
push ebx
bswap ebx
nop
push ecx
lea ecx, [ebx - 0x1a27]
inc cx
push ecx
aam 0xa
sar ebx, 5
xchg ecx, eax
xor ax, 0x35
lea esp, [esp - 4]
push edx
cwd
pushfd
push eax
add ah, ah
mov dx, dx
xor dx, dx
mov ax, 0x7ee3
push ecx
mov cx, 0x5f81
div cx
sahf
not dl
shl edx, 5
inc al
cmp cx, ax
bswap ecx
test edx, ecx
sahf
not cx
aas
not ecx
clc
cbw
inc dh
dec ecx
neg dx
mov edx, dword [esp + 0xc]
push ebx
lahf
mov eax, dword [esp + 8]
bswap ecx
mov ecx, dword [esp + 4]
push ebx
inc ebx
mov ebx, dword [esp + 0x10]
push ebx
popfd
mov ebx, dword [esp]
lea esp, [esp + 0x18]
mov dword [esp], edx
cwd
mov eax, dword [esp]
mov dword [esp + 0x50], eax
pop ecx
btc ax, 5
cmc
bts eax, 2
sahf
push ebx
sar ebx, 4
xadd edx, ecx
inc ax
aaa
ror ax, 4
bts edx, 3
inc ebx
add ebx, eax
dec ecx
das
pop ebx
inc bx
bsf edx, ecx
cbw
clc
bsf edx, ecx
mov ax, 0xb4
mov cx, 0xf3
mul cx
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x4c]
sahf
inc bh
mov ebx, dword [esp + 0x10]
push ebx
popfd
mov ebx, dword [esp + 8]
lea esp, [esp + 0x50]
jmp 0x100081b0
add eax, 2
cmp eax, ecx
je 0x1001e782
test byte [esi + 0x44], 8
jmp 0x1001e767
jmp 0x1001eb6c
cmp ecx, 0x5b
jne 0x1001e889
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1001e86b
cmp word [eax], 0x5c
jne 0x1001e868
add eax, 2
cmp eax, ecx
je 0x1001e847
test byte [esi + 0x44], 8
jne 0x1001e847
jns 0x1001e832
pushfd
push eax
aas
not eax
stc
push ecx
btc cx, 6
aam 0xa
btc ecx, 2
das
lea esp, [esp - 4]
pushfd
push eax
push edx
and edx, eax
sahf
push ebx
neg bx
stc
push ecx
rol ch, 0
neg al
mov eax, 0xf1f0
mov ecx, 0xfb40
mul ecx
cbw
aas
sahf
btc eax, 3
inc dl
cbw
sahf
nop
bswap ecx
push ebx
neg ebx
rol eax, 5
inc ecx
mov ecx, dword [esp + 4]
aam 0xa
mov eax, dword [esp + 0x10]
dec bl
mov ebx, dword [esp + 8]
stc
inc edx
mov edx, dword [esp + 0x14]
push edx
popfd
mov edx, dword [esp + 0xc]
lea esp, [esp + 0x18]
mov dword [esp], edx
cwd
shl dx, 3
push ebx
xadd ebx, ecx
das
neg ah
sub ebx, ecx
neg edx
sahf
bsf ecx, ebx
push ebx
cwd
bswap eax
shr cx, 6
not eax
aad 0xa
inc bx
xadd eax, ebx
sahf
aam 0xa
aaa
inc eax
neg cx
rol eax, 2
mov eax, dword [esp + 0x10]
sar bh, 4
shl edx, 6
mov edx, dword [esp + 8]
neg ecx
mov ecx, dword [esp + 0xc]
sub ebx, 0x7892
mov ebx, dword [esp + 0x14]
push ebx
popfd
mov ebx, dword [esp + 4]
lea esp, [esp + 0x18]
js 0x1001e832
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1001eb11
cmp word [eax], 0x5c
jne 0x1001eb0e
add eax, 2
cmp eax, ecx
je 0x1001eaed
test byte [esi + 0x44], 8
jne 0x1001eaed
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x1001eb0c
cmp ecx, 0x29
je 0x1001eb0c
test byte [esi + 0x44], 0x10
jne 0x1001eb0e
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x1001eb0c
cmp ecx, 0x7d
jne 0x1001eb0e
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.10007a30
jmp 0x1001eb6c
cmp ecx, 0x5c
jne 0x1001e9a3
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1001e7a6
cmp word [eax], 0x5c
jne 0x1001e7a3
jmp 0x1001e98a
mov eax, dword [esi + 0x1c]
xor dword [eax + 8], 1
add eax, 8
mov ecx, esi
call fcn.10007fb0
jmp 0x1001ebf0
mov ecx, esi
call fcn.1001c160
jmp 0x1001e99e
mov ecx, esi
push 0x3efebf0
lea esp, [esp - 0x34]
pushfd
push eax
inc eax
push ebx
bsr bx, bx
clc
push edx
mov dh, 0xdc
sahf
aaa
cmp ecx, 0xffffe163
push eax
bswap edx
bswap edx
push ebx
pop ebx
dec ebx
push ecx
inc ecx
mov eax, dword [esp]
mov dword [esp + 0x48], eax
pop edx
inc bl
and al, ah
not cx
shr bl, 0
cbw
clc
xor ebx, eax
bswap ecx
clc
and edx, 0x17e4
btc eax, 5
btc cx, 0
not cx
xchg bl, bl
mov ebx, dword [esp + 8]
bsf dx, ax
neg dl
mov edx, dword [esp + 4]
bswap ecx
mov ecx, dword [esp + 0x44]
shl al, 4
sahf
mov eax, dword [esp + 0x10]
push eax
popfd
bswap eax
mov eax, dword [esp + 0xc]
lea esp, [esp + 0x48]
jmp 0x1001c660
cmp dword [esi + 0x40], 0xffff
mov al, 1
jne 0x1001e693
pop ebx
pop esi
ret
cmp ecx, 0x5e
jne 0x1001ec1f
lea ecx, [esi + 0x18]
call fcn.10002240
mov ecx, esi
call fcn.10007fb0
jmp 0x1001ebf0
cmp ecx, 0x24
jne 0x1001ec3c
lea ecx, [esi + 0x18]
call fcn.100022b0
mov ecx, esi
call fcn.10007fb0
jmp 0x1001ebf0
cmp ecx, 0x2a
je 0x1001eedc
cmp ecx, 0x2b
je 0x1001eedc
cmp ecx, 0x3f
je 0x1001eedc
cmp ecx, 0x7b
je 0x1001eedc
cmp ecx, 0x7d
jne 0x1001ed62
test dword [esi + 0x44], eax
jne 0x1001ed62
push 6
push 0x3efed5a
pushfd
push ebx
neg ebx
btc ebx, 6
cmc
sahf
push eax
das
clc
push ecx
mov ecx, ecx
not ecx
not ebx
push edx
or al, dl
bswap edx
bswap ebx
test eax, edx
shr eax, 3
bswap ebx
dec bx
aam 0xa
bsf dx, dx
rol eax, 6
not ecx
push ecx
cbw
neg ebx
mov ebx, dword [esp + 0x10]
lea ecx, [ecx + edx + 0xffc]
bswap eax
daa
daa
not ecx
mov eax, dword [esp + 0x14]
push eax
popfd
mov ecx, dword [esp + 8]
pop edx
mov edx, dword [esp]
cbw
mov eax, dword [esp + 8]
lea esp, [esp + 0x14]
push 0x3f42cd0
pushfd
push ebx
neg bl
push eax
push edx
cdq
stc
push ecx
bswap ecx
aas
xadd edx, ecx
shr dx, 5
cwd
xor edx, edx
mov eax, 0xae43
mov ecx, 0xce6
div ecx
daa
not ebx
shr edx, 5
bsr bx, dx
aaa
bts ecx, 3
xor dx, bx
push ebx
bt cx, 3
btc ebx, 6
stc
aad 0xa
push ecx
bsr bx, bx
bsf cx, cx
shr dh, 6
bswap ebx
add ecx, eax
daa
bsf edx, eax
inc edx
lea eax, [edx + 0x5074]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
nop
xchg cx, bx
xadd ebx, ecx
mov ebx, dword [esp + 0x18]
push ebx
popfd
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 8]
lea esp, [esp + 0x1c]
ret
cmp ecx, 0x5d
jne 0x1001eec3
test dword [esi + 0x44], eax
jne 0x1001eec3
lea esp, [esp - 4]
pushfd
sahf
push ebx
push ecx
xadd ebx, ecx
push eax
mov eax, 0x7368
mov ecx, 0x5bd7
push edx
mul ecx
bswap edx
sahf
dec ax
btc bx, 4
mov edx, 0x31f
lahf
cdq
bsr bx, bx
cmc
dec ah
inc ebx
cwd
shl eax, 6
not eax
dec bh
mov ebx, dword [esp + 0xc]
das
not edx
neg al
not al
ror cl, 1
shr dl, 0
neg ah
not eax
mov eax, dword [esp + 4]
and cx, dx
mov ecx, dword [esp + 0x10]
push ecx
popfd
mov ecx, dword [esp + 8]
mov edx, dword [esp]
lea esp, [esp + 0x14]
mov dword [esp], 4
push 0x3efeebb
pushfd
push eax
das
push ebx
bt bx, 0
push edx
rol edx, 1
cbw
ror dx, 6
cdq
rol bl, 4
aam 0xa
clc
mov eax, 0xe618
push ecx
mov ecx, 0xe584
mul ecx
sar ecx, 4
not dl
aaa
push ecx
and ax, bx
bsf ecx, ebx
mov ebx, dword [esp + 0xc]
daa
mov eax, dword [esp + 0x10]
rol dh, 2
mov ecx, dword [esp + 0x14]
push ecx
popfd
mov edx, dword [esp + 8]
pop ecx
mov ecx, dword [esp]
lea esp, [esp + 0x14]
push 0x3f42cd0
pushfd
push eax
bts ax, 1
dec ax
push ebx
push ecx
sub cl, bl
sub ax, 6
push edx
bsf ebx, edx
bts bx, 4
dec bh
stc
shl bx, 6
mov ax, 0x9d
mov cx, 0x7c
mul cx
dec ecx
and bl, cl
daa
not eax
xadd edx, ebx
add eax, ecx
inc ecx
aad 0xa
lahf
inc bh
mov ebx, dword [esp + 8]
not ax
lahf
aam 0xa
and edx, 0x37c5
xchg ecx, edx
push eax
aaa
inc edx
bts dx, 0
bswap edx
aaa
mov eax, 0xd4a3
mov ecx, 0x7e51
mul ecx
mov eax, dword [esp + 0x14]
push eax
popfd
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
lahf
mov eax, dword [esp + 0x10]
lea esp, [esp + 0x18]
ret
movzx edx, word [esi + 0x3e]
lea ecx, [esi + 0x18]
push edx
call fcn.1001af40
mov ecx, esi
call fcn.10007fb0
jmp 0x1001eb6c
push 0xa
call fcn.10062cd0
add esp, 4
jmp 0x1001eb6c