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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x3044
call fcn.00494280
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
push ebx
xor ecx, ecx
push esi
push edi
mov dword [ebp - 8], ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 4], edx
mov dword [ebp - 0x24], eax
test eax, eax
je 0x424011
cmp dword [eax], 0
je 0x424011
mov edx, dword [ebp - 4]
mov esi, eax
mov dword [ebp - 0xc], esi
cmp edx, dword [eax]
jb 0x424022
jmp 0x424e36
mov eax, dword [ebp - 4]
xor esi, esi
mov dword [ebp - 0xc], esi
cmp word [eax], si
je 0x42531e
cmp ecx, 0x1ff
jg 0x425dd5
mov eax, dword [ebp - 4]
movzx edx, word [eax]
cmp edx, 0x20
je 0x42403e
cmp edx, 9
jne 0x424043
add eax, 2
jmp 0x424031
cmp word [eax], 0
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], eax
je 0x424e2e
test esi, esi
je 0x42405f
cmp eax, dword [esi]
jae 0x424e2e
shl ecx, 4
lea esi, [ebp + ecx - 0x2840]
mov dword [esi], 0
movzx edx, word [eax]
movzx edi, word [eax + 2]
lea ebx, [eax + 2]
add edx, 0xffffffdf
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], ebx
cmp edx, 0x5d
ja 0x424a91
movzx edx, byte [edx + 0x425254]
jmp dword [edx*4 + 0x4251f8]
movzx eax, word [ebx]
cmp eax, 0x2d
je 0x424264
cmp eax, 0x2b
jne 0x424301
movzx edi, word [ebx - 2]
test edi, 0xffffff80
jne 0x424282
push 2
push edi
call fcn.0048817e
add esp, 8
test eax, eax
je 0x424282
and edi, 0xffffffdf
cmp di, 0x45
jne 0x424301
mov edx, dword [ebp - 0x14]
cmp word [edx], 0x30
jne 0x4242b7
mov eax, dword [ebp - 0x1c]
movzx edi, word [eax]
test edi, 0xffffff80
jne 0x4242b1
push 2
push edi
call fcn.0048817e
add esp, 8
test eax, eax
je 0x4242b1
and edi, 0xffffffdf
cmp di, 0x58
je 0x424301
mov ecx, dword [ebp - 0x14]
cmp word [ecx], 0x2d
jne 0x4242f0
mov edx, dword [ebp - 0x1c]
cmp word [edx], 0x30
jne 0x4242f0
mov eax, ecx
movzx edi, word [eax + 4]
test edi, 0xffffff80
jne 0x4242e9
push 2
push edi
call fcn.0048817e
add esp, 8
test eax, eax
je 0x4242e9
and edi, 0xffffffdf
cmp di, 0x58
je 0x424301
nop
movzx eax, word [ebx + 2]
add ebx, 2
cmp eax, 0x30
jb 0x424301
cmp eax, 0x39
jbe 0x4242f0
mov eax, dword [ebp - 8]
test eax, eax
je 0x42432b
mov ecx, dword [ebp - 0x18]
cmp dword [ebp + ecx - 0x2848], 0xe
jge 0x42432b
cmp eax, 0x1fe
jg 0x425dd5
inc eax
mov dword [esi + 8], 0x2a
mov dword [ebp - 8], eax
mov esi, eax
mov eax, dword [ebp - 0x14]
mov edx, ebx
sub edx, eax
sar edx, 1
push edx
add esi, esi
push eax
mov dword [ebp + esi*8 - 0x2838], 4
call fcn.00469180
add esp, 8
mov dword [ebp + esi*8 - 0x2840], eax
test eax, eax
je 0x424db1
mov dword [ebp - 4], ebx
inc dword [ebp - 8]
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
jmp 0x424022
cmp word [eax], 0x2e
jne 0x424c50
cmp edi, 0x3d
jne 0x424abc
mov dword [ebp - 4], ebx
add dword [ebp - 4], 2
inc dword [ebp - 8]
mov ecx, dword [ebp - 8]
mov dword [esi + 8], 0x1d
mov esi, dword [ebp - 0xc]
jmp 0x424022
cmp edi, 0x20
je 0x424c1b
cmp edi, 9
je 0x424c1b
mov eax, dword [ebp - 8]
test eax, eax
je 0x424c50
cmp dword [ebp + ecx - 0x2848], 0xe
lea ecx, [ebp + ecx - 0x2838]
mov dword [ebp - 0x28], ecx
jge 0x424c50
cmp eax, 0x1fe
jg 0x425dd5
mov edi, ebx
mov edi, edi
movzx eax, word [edi]
test eax, 0xffffff80
jne 0x424b1c
push 0x107
push eax
call fcn.0048817e
add esp, 8
test eax, eax
jne 0x424b22
cmp word [edi], 0x5f
jne 0x424b27
add edi, 2
jmp 0x424b00
movzx ecx, word [edi]
push ecx
push 0x4a05f4
call fcn.00487d01
add esp, 8
test eax, eax
je 0x4252f1
cmp edi, ebx
jne 0x424b4e
cmp word [edi], 0x28
jne 0x4252fe
lea eax, [esi - 0x10]
lea edx, [ebp - 0x2840]
mov byte [ebp - 0x1d], 0
cmp eax, edx
jb 0x424b90
nop
cmp dword [eax + 8], 0xa
jne 0x424b75
sub eax, 0x20
lea ecx, [ebp - 0x2840]
cmp eax, ecx
jae 0x424b60
jmp 0x424b90
cmp dword [eax + 8], 7
jge 0x424b88
lea edx, [ebp - 0x2840]
cmp eax, edx
jbe 0x424b88
sub eax, 0x10
cmp dword [eax + 8], 0x3e
sete byte [ebp - 0x1d]
mov eax, dword [ebp - 0x28]
mov ecx, edi
sub ecx, ebx
sar ecx, 1
push ecx
push ebx
mov dword [eax], 4
call fcn.00469180
add esp, 8
mov dword [esi], eax
test eax, eax
je 0x424db1
inc dword [ebp - 8]
mov eax, 0xc
call fcn.00469210
test eax, eax
je 0x424db1
add ebx, 0xfffffffe
mov dword [eax], ebx
mov byte [eax + 9], 2
cmp word [edi], 0x28
jne 0x424beb
cmp byte [ebp - 0x1d], 0
jne 0x424beb
mov edx, 0x3d
mov dword [eax + 4], 0x4be66c
jmp 0x424bf7
mov edx, 0xa
mov dword [eax + 4], 0x4be604
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
add ecx, ecx
inc dword [ebp - 8]
mov dword [ebp + ecx*8 - 0x2838], edx
mov dword [ebp + ecx*8 - 0x2840], eax
mov ecx, dword [ebp - 8]
mov dword [ebp - 4], edi
jmp 0x424022
cmp dword [ebp - 8], 0
je 0x42530e
movzx eax, word [eax - 2]
cmp eax, 0x20
je 0x424c37
cmp eax, 9
jne 0x42530e
mov dword [esi + 8], 0x2a
add dword [ebp - 4], 2
inc dword [ebp - 8]
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
jmp 0x424022
mov ebx, dword [ebp - 0x1c]
movzx edx, word [ebx]
push edx
push 0x4a05f4
call fcn.00487d01
add esp, 8
test eax, eax
jne 0x424c81
movzx eax, word [ebx + 2]
add ebx, 2
push eax
push 0x4a05f4
call fcn.00487d01
add esp, 8
test eax, eax
je 0x424c68
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x424c90
cmp ebx, dword [eax]
jae 0x424edf
cmp word [ebx], 0x2e
jne 0x424cc9
movzx ecx, word [ebx + 2]
add ebx, 2
push ecx
push 0x4a05f4
call fcn.00487d01
add esp, 8
test eax, eax
jne 0x424cc9
nop
movzx edx, word [ebx + 2]
add ebx, 2
push edx
push 0x4a05f4
call fcn.00487d01
add esp, 8
test eax, eax
je 0x424cb0
mov eax, ebx
sub eax, dword [ebp - 0x14]
and eax, 0xfffffffe
cmp eax, 6
jne 0x424253
mov ecx, dword [ebp - 0x14]
movzx eax, word [ecx]
cmp eax, 0x6e
je 0x424cee
cmp eax, 0x4e
jne 0x424253
mov ecx, ebx
movzx eax, word [ecx]
cmp eax, 0x20
je 0x424cfd
cmp eax, 9
jne 0x424d02
add ecx, 2
jmp 0x424cf0
cmp word [ecx], 0x3a
je 0x424253
cmp edi, 0x6f
je 0x424d16
cmp edi, 0x4f
jne 0x424d2f
mov edx, dword [ebp - 0x14]
movzx eax, word [edx + 4]
cmp eax, 0x74
je 0x424e16
cmp eax, 0x54
je 0x424e16
cmp edi, 0x65
je 0x424d3d
cmp edi, 0x45
jne 0x424253
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 4]
cmp eax, 0x77
je 0x424d52
cmp eax, 0x57
jne 0x424253
mov eax, dword [ebp - 8]
test eax, eax
je 0x424d7c
mov ecx, dword [ebp - 0x18]
cmp dword [ebp + ecx - 0x2848], 0xe
jge 0x424d7c
cmp eax, 0x1fe
jg 0x425dd5
inc eax
mov dword [esi + 8], 0x2a
mov dword [ebp - 8], eax
cmp dword [0x4c30bc], 0
jne 0x424d93
call fcn.00469280
mov dword [0x4c30bc], eax
test eax, eax
je 0x424db1
mov edx, dword [0x4c30c0]
cmp dword [edx + 8], 0xc
jae 0x424dc2
call fcn.00469280
mov ecx, dword [0x4c30c0]
mov dword [ecx + 0xc], eax
test eax, eax
jne 0x424dc8
mov ecx, dword [0x4c30c0]
mov eax, dword [ecx + 4]
add dword [ecx + 8], 0xfffffff4
lea edx, [eax + 0xc]
mov dword [0x4c30c4], eax
mov dword [ecx + 4], edx
test eax, eax
je 0x424db1
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0xc]
mov dword [eax], ecx
mov ecx, dword [ebp - 8]
add ecx, ecx
inc dword [ebp - 8]
mov byte [eax + 9], 1
mov dword [eax + 4], 0x4be6d4
mov dword [ebp + ecx*8 - 0x2838], 0x3e
mov dword [ebp + ecx*8 - 0x2840], eax
mov ecx, dword [ebp - 8]
mov dword [ebp - 4], ebx
jmp 0x424022
inc dword [ebp - 8]
mov ecx, dword [ebp - 8]
mov dword [esi + 8], 0x22
mov esi, dword [ebp - 0xc]
mov dword [ebp - 4], ebx
jmp 0x424022
test esi, esi
je 0x42531e
cmp ecx, 0x1ff
jg 0x425dd5
cmp byte [esi + 8], 0
je 0x424e94
test ecx, ecx
je 0x424e77
mov eax, ecx
add eax, eax
cmp dword [ebp + eax*8 - 0x2848], 0xe
lea eax, [ebp + eax*8 - 0x2838]
jge 0x424e77
cmp ecx, 0x1fe
jg 0x425dd5
inc ecx
mov dword [eax], 0x2a
mov dword [ebp - 8], ecx
add ecx, ecx
mov dword [ebp + ecx*8 - 0x2838], 0x3d
mov dword [ebp + ecx*8 - 0x2840], esi
mov byte [esi + 9], 0
jmp 0x4252a9
mov ebx, dword [esi]
mov dx, word [ebx]
cmp dx, word [0x4bd410]
jne 0x42518c
mov eax, dword [ebp - 0xc]
movzx ecx, word [eax + 0xa]
movzx edx, word [ebx + ecx*2]
lea ebx, [ebx + ecx*2]
push edx
push 0x4a05f4
call fcn.00487d01
add esp, 8
test eax, eax
jne 0x424edf
movzx eax, word [ebx + 2]
add ebx, 2
push eax
push 0x4a05f4
call fcn.00487d01
add esp, 8
test eax, eax
je 0x424ec6
mov edi, dword [ebp - 8]
test edi, edi
je 0x424f0e
mov ecx, edi
add ecx, ecx
cmp dword [ebp + ecx*8 - 0x2848], 0xe
lea eax, [ebp + ecx*8 - 0x2838]
jge 0x424f0e
cmp edi, 0x1fe
jg 0x425dd5
mov dword [eax], 0x2a
inc edi
mov eax, dword [ebp - 4]
mov edx, ebx
sub edx, eax
sar edx, 1
mov esi, edi
push edx
shl esi, 4
push eax
mov dword [ebp - 0x18], esi
mov dword [ebp + esi - 0x2838], 6
call fcn.00469180
add esp, 8
mov dword [ebp + esi - 0x283c], eax
test eax, eax
je 0x424db1
mov esi, dword [ebp - 0x24]
mov eax, dword [esi + 0xc]
mov edx, esi
add esi, 0xc
mov dword [ebp - 0x28], edx
test eax, eax
je 0x424f63
cmp eax, ebx
jae 0x424f63
mov eax, dword [esi + 0xc]
add esi, 0xc
test eax, eax
jne 0x424f55
mov ecx, esi
sub ecx, edx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
lea eax, [eax + eax*2]
add eax, eax
add eax, eax
lea ecx, [eax + 0xc]
mov dword [ebp - 0x24], eax
lea eax, [ecx - 1]
sub esi, 0xc
mov dword [ebp - 0x1c], ecx
cmp eax, 0xffff
ja 0x424db1
cmp dword [0x4c30bc], 0
jne 0x425088
push 0x10
call fcn.00488f0e
add esp, 4
mov dword [ebp - 0xc], eax
test eax, eax
je 0x424ff5
mov ecx, eax
push 0x10000
mov dword [ecx + 0xc], 0
call fcn.00486fc4
mov ecx, dword [ebp - 0xc]
add esp, 4
mov dword [ecx + 4], eax
mov dword [ecx], eax
test eax, eax
jne 0x424ffe
mov edx, ecx
mov eax, dword [edx]
test eax, eax
je 0x424fe9
push eax
call fcn.00488575
add esp, 4
mov eax, dword [ebp - 0xc]
push eax
call fcn.004889e5
add esp, 4
mov eax, dword [0x4c30c0]
xor ecx, ecx
jmp 0x425015
mov eax, dword [ebp - 0xc]
inc dword [0x4c30c8]
mov dword [eax + 8], 0x10000
mov dword [0x4c30c0], eax
mov ecx, eax
mov dword [0x4c30bc], ecx
test ecx, ecx
je 0x424db1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [eax + 8]
jbe 0x4250b1
push 0x10
call fcn.00488f0e
add esp, 4
mov dword [ebp - 0xc], eax
test eax, eax
je 0x42507f
mov ecx, eax
push 0x10000
mov dword [ecx + 0xc], 0
call fcn.00486fc4
mov ecx, dword [ebp - 0xc]
add esp, 4
mov dword [ecx + 4], eax
mov dword [ecx], eax
test eax, eax
jne 0x42508f
mov edx, ecx
mov eax, dword [edx]
test eax, eax
je 0x425073
push eax
call fcn.00488575
add esp, 4
mov eax, dword [ebp - 0xc]
push eax
call fcn.004889e5
add esp, 4
mov eax, dword [0x4c30c0]
xor ecx, ecx
jmp 0x4250a6
mov eax, dword [0x4c30c0]
jmp 0x425026
mov eax, dword [ebp - 0xc]
inc dword [0x4c30c8]
mov dword [eax + 8], 0x10000
mov dword [0x4c30c0], eax
mov ecx, eax
mov dword [eax + 0xc], ecx
test ecx, ecx
je 0x424db1
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x1c]
mov dword [0x4c30c4], ecx
mov ecx, edx
and ecx, 3
je 0x4250c9
sub edx, ecx
add edx, 4
mov ecx, dword [eax + 4]
sub dword [eax + 8], edx
add ecx, edx
cmp dword [0x4c30c4], 0
mov dword [eax + 4], ecx
je 0x424db1
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov ecx, dword [0x4c30c4]
push edx
push eax
push ecx
call fcn.0048a360
mov eax, dword [0x4c30c4]
mov edx, dword [ebp - 0x24]
add esp, 0xc
mov dword [edx + eax], 0
cmp dword [eax], 0
je 0x42512e
lea esp, [esp]
mov ecx, dword [eax]
sub ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x18]
mov edx, dword [ebp + edx - 0x283c]
sar ecx, 1
lea ecx, [edx + ecx*2]
mov dword [eax], ecx
add eax, 0xc
cmp dword [eax], 0
jne 0x425110
mov ecx, dword [0x4c30c4]
mov edx, dword [ebp - 0x18]
mov dword [ebp + edx - 0x2840], ecx
cmp word [ebx], 0x28
jne 0x425180
cmp edi, 0x1fe
jg 0x425dd5
mov byte [eax + 8], 1
mov dword [eax + 4], 0
mov cl, byte [ecx + 9]
mov byte [eax + 9], cl
inc edi
mov ecx, edi
add ecx, ecx
mov dword [ebp + ecx*8 - 0x2838], 0x3d
mov dword [ebp + ecx*8 - 0x2840], eax
mov dword [ebp - 4], ebx
jmp 0x4252bc
mov byte [eax + 8], 0
mov dword [ebp - 4], ebx
jmp 0x4252bc
test ecx, ecx
je 0x4251bc
mov edx, ecx
shl edx, 4
cmp dword [ebp + edx - 0x2848], 0xe
lea eax, [ebp + edx - 0x2838]
jge 0x4251bc
cmp ecx, 0x1fe
jg 0x425dd5
inc ecx
mov dword [eax], 0x2a
mov dword [ebp - 8], ecx
mov eax, ecx
mov ecx, dword [esi + 4]
add eax, eax
lea edi, [ebp + eax*8 - 0x2840]
mov dword [edi], ecx
mov ecx, dword [esi + 4]
mov dl, byte [ecx + 0x17]
xor ebx, ebx
test dl, dl
jne 0x4251de
mov edx, dword [ecx + 0xc]
mov dl, byte [edx + 0x17]
cmp dl, 1
jne 0x4251fb
cmp dword [0x4c0fd8], ebx
je 0x4251fb
mov dword [ebp + eax*8 - 0x2838], 3
jmp 0x4252a9
mov ecx, dword [ecx + 0x10]
cmp ecx, 0x4404e0
jne 0x42525b
mov dword [ebp + eax*8 - 0x2838], 1
mov eax, dword [esi]
movzx esi, word [eax]
test esi, 0xffffff80
jne 0x425234
push 2
push esi
call fcn.0048817e
add esp, 8
test eax, eax
je 0x425234
mov eax, esi
and eax, 0xffffffdf
jmp 0x425236
mov eax, esi
cmp ax, 0x54
jne 0x42524d
mov esi, dword [ebp - 0xc]
mov eax, 1
xor ecx, ecx
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x4252a9
mov esi, dword [ebp - 0xc]
xor eax, eax
xor ecx, ecx
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x4252a9
cmp ecx, 0x440fc0
jne 0x425279
mov dword [ebp + eax*8 - 0x2838], 1
mov dword [edi], 4
mov dword [edi + 4], ebx
jmp 0x4252a9
cmp ecx, 0x440e20
jne 0x425297
mov dword [ebp + eax*8 - 0x2838], 1
mov dword [edi], 1
mov dword [edi + 4], ebx
jmp 0x4252a9
mov dword [ebp + eax*8 - 0x2838], 6
mov dword [ebp + eax*8 - 0x283c], ebx
movzx ecx, word [esi + 0xa]
mov edx, dword [ebp - 4]
mov esi, dword [ebp - 0x24]
mov edi, dword [ebp - 8]
lea eax, [edx + ecx*2]
mov dword [ebp - 4], eax
add esi, 0xc
inc edi
mov dword [ebp - 0x24], esi
mov dword [ebp - 8], edi
mov eax, esi
mov ecx, edi
jmp 0x423ff7
push edi
push 0
push 0x4a2258
jmp 0x425de1
add ebx, 0xfffffffe
push ebx
push 0
push 0x4a06ac
jmp 0x425de1
mov ecx, dword [ebp - 0x14]
push ecx
push 0
push 0x4a06ac
jmp 0x425de1
cmp ecx, 0x1ff
jg 0x425dd5
add ecx, ecx
lea edx, [ebp - 0x38]
xor ebx, ebx
mov dword [ebp + ecx*8 - 0x2838], 0x40
mov dword [ebp - 0x30], 7
mov dword [ebp - 0x840], edx
mov dword [ebp - 4], 1
lea esi, [ebp - 0x2840]
mov dword [ebp - 8], ebx
mov edx, dword [ebp - 4]
lea esp, [esp]
push case.0x445d77.7
push 0
push 0x4a21d4