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

Disassembly:
sub esp, 0x1c
mov eax, dword [esp + 0x24]
mov edx, dword [eax]
push ebx
mov ebx, dword [esp + 0x24]
test ebx, ebx
push ebp
push esi
push edi
mov dword [esp + 0x20], 0
mov dword [esp + 0x18], edx
mov dword [esp + 0x28], ecx
mov ebp, ebx
je 0x10173d77
cmp byte [ebx], 0
je 0x10173d6f
lea esp, [esp]
mov al, byte [ebp + 1]
inc ebp
test al, al
jne 0x10173d67
sub ebp, ebx
and ebp, 0x3fffffff
test dl, 0x40
jne 0x10173d89
mov eax, dword [0x101b769c]
test eax, eax
je 0x101741e3
cmp ebp, 5
jl 0x101741e3
mov ecx, 5
mov edi, 0x10189254
mov esi, ebx
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x101741e3
or edx, 0x40
cmp ebp, eax
mov dword [esp + 0x14], eax
lea esi, [ebp + 2]
mov dword [esp + 0x18], edx
jle 0x10173dcc
mov dl, byte [eax + ebx]
xor ecx, ecx
cmp dl, 0x26
sete cl
add esi, ecx
inc eax
cmp eax, ebp
jl 0x10173dba
call fcn.1016e907
test eax, eax
jne 0x10174200
push esi
call fcn.101437b7
mov esi, eax
add esp, 4
test esi, esi
mov dword [esp + 0x10], esi
je 0x10174200
mov al, byte [ebx + 5]
mov cl, 0x2f
cmp al, cl
jne 0x10173e57
cmp byte [ebx + 6], cl
jne 0x10173e57
mov al, byte [ebx + 7]
test al, al
lea edx, [ebx + 7]
mov ebp, 7
je 0x10173e5c
cmp al, cl
je 0x10173e1a
mov al, byte [ebx + ebp + 1]
inc ebp
test al, al
jne 0x10173e0d
cmp ebp, 7
je 0x10173e5c
cmp ebp, 0x10
jne 0x10173e3a
mov ecx, 9
mov edi, edx
mov esi, 0x10189248
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
mov esi, dword [esp + 0x10]
je 0x10173e5c
push edx
add ebp, 0xfffffff9
push ebp
push 0x1018922c
call fcn.1014d117
mov ecx, dword [esp + 0x4c]
add esp, 0xc
mov dword [ecx], eax
jmp 0x10174262
mov ebp, 5
mov al, byte [ebx + ebp]
mov edx, dword [esp + 0x14]
xor ecx, ecx
test al, al
mov dword [esp + 0x1c], ecx
je 0x10173f2c
lea ebx, [ebx]
cmp al, 0x23
je 0x10173f22
inc ebp
cmp al, 0x25
jne 0x10173fbe
mov cl, byte [ebx + ebp]
movzx edi, cl
test byte [edi + 0x10182e30], 8
je 0x10173fba
movzx edi, byte [ebx + ebp + 1]
test byte [edi + 0x10182e30], 8
je 0x10173fba
movsx edx, byte [ebx + ebp + 1]
movsx ecx, cl
mov eax, ecx
sar eax, 6
and al, 1
inc ebp
mov bl, 7
imul bl
sub cl, al
mov eax, edx
sar eax, 6
and al, 1
imul bl
mov ebx, dword [esp + 0x30]
sub dl, al
and ecx, 0xf
shl ecx, 4
and edx, 0xf
add ecx, edx
inc ebp
test ecx, ecx
jne 0x10173f9f
mov al, byte [ebx + ebp]
test al, al
mov ecx, dword [esp + 0x1c]
je 0x10173f0f
lea ebx, [ebx]
cmp al, 0x23
je 0x10173f0f
test ecx, ecx
jne 0x10173f06
cmp al, 0x3f
jmp 0x10173f8b
cmp ecx, 1
jne 0x10173f84
cmp al, 0x3d
jne 0x10173f89
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov al, byte [ebx + ebp]
test al, al
jne 0x10173e77
cmp ecx, 1
jne 0x10173f2c
mov byte [esi + edx], 0
inc edx
mov byte [esi + edx], 0
mov byte [esi + edx + 1], 0
cmp byte [esi], 0
mov eax, esi
je 0x10173f44
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x10173f3c
sub eax, esi
and eax, 0x3fffffff
lea edi, [eax + esi + 1]
cmp byte [edi], 0
je 0x10174233
mov eax, edi
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x10173f5a
sub eax, edi
and eax, 0x3fffffff
lea edx, [eax + edi + 1]
test edx, edx
mov dword [esp + 0x1c], edx
mov ecx, edx
jne 0x1017406e
mov dword [esp + 0x30], edx
jmp 0x1017408b
cmp ecx, 2
jne 0x10173f8d
cmp al, 0x26
je 0x10173f0f
mov al, byte [ebx + ebp + 1]
inc ebp
test al, al
jne 0x10173ef7
jmp 0x10173f0f
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov al, cl
mov ecx, dword [esp + 0x1c]
mov byte [esi + edx], al
inc edx
mov dword [esp + 0x14], edx
jmp 0x10173f17
mov ecx, dword [esp + 0x1c]
cmp ecx, 1
jne 0x10174038
cmp al, 0x26
je 0x10173fcf
cmp al, 0x3d
jne 0x10174061
cmp byte [esi + edx - 1], 0
jne 0x10174008
mov al, byte [ebx + ebp]
test al, al
je 0x10173f17
lea ebx, [ebx]
cmp al, 0x23
je 0x10173f17
cmp byte [ebx + ebp - 1], 0x26
je 0x10173f17
mov al, byte [ebx + ebp + 1]
inc ebp
test al, al
jne 0x10173fe7
jmp 0x10173f17
cmp al, 0x26
jne 0x10174020
mov byte [esi + edx], 0
inc edx
xor al, al
mov byte [esi + edx], al
inc edx
mov dword [esp + 0x14], edx
jmp 0x10173f17
xor al, al
mov byte [esi + edx], al
mov ecx, 2
inc edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], edx
jmp 0x10173f17
test ecx, ecx
jne 0x1017404d
cmp al, 0x3f
je 0x10174056
mov byte [esi + edx], al
inc edx
mov dword [esp + 0x14], edx
jmp 0x10173f17
cmp ecx, 2
jne 0x10174061
cmp al, 0x26
jne 0x10174061
mov ecx, 1
mov dword [esp + 0x1c], ecx
xor al, al
mov byte [esi + edx], al
inc edx
mov dword [esp + 0x14], edx
jmp 0x10173f17
cmp byte [edx], 0
je 0x1017407f
lea esp, [esp]
mov bl, byte [ecx + 1]
inc ecx
test bl, bl
jne 0x10174077
sub ecx, edx
and ecx, 0x3fffffff
mov dword [esp + 0x30], ecx
cmp eax, 3
jne 0x101740aa
mov ecx, eax
mov esi, 0x10189228
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x101741a6
mov dword [esp + 0x28], edx
jmp 0x101741a6
cmp eax, 5
jne 0x101740d8
mov ecx, eax
mov esi, 0x10189220
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x101741a6
mov ebx, 0x60000
mov dword [esp + 0x24], ebx
mov edx, 0x101b84a4
mov dword [esp + 0x14], 0x10189220
jmp 0x1017410f
cmp eax, 4
jne 0x101741a6
mov ecx, 0x10189218
mov eax, dword [ecx]
cmp eax, dword [edi]
jne 0x101741a6
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x24], 0x87
mov edx, 0x101b84bc
and ebx, 0x87
mov dword [esp + 0x14], 0x10189210
mov edi, dword [edx]
xor ebp, ebp
test edi, edi
je 0x1017415a
test edi, edi
mov eax, edi
je 0x10174136
cmp byte [edi], 0
je 0x1017412f
jmp 0x10174127
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x10174127
sub eax, edi
and eax, 0x3fffffff
mov ecx, dword [esp + 0x30]
cmp ecx, eax
jne 0x10174151
mov esi, dword [esp + 0x1c]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x1017414d
sbb eax, eax
sbb eax, reloc.WINMM.dll_midiStreamOut
test eax, eax
je 0x1017417c
mov edi, dword [edx + ebp*8 + 8]
inc ebp
test edi, edi
jne 0x10174117
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
push ecx
push edx
push 0x101891fc
call fcn.1014d117
mov ecx, dword [esp + 0x4c]
add esp, 0xc
mov dword [ecx], eax
jmp 0x1017425e
mov eax, dword [edx + ebp*8 + 4]
test eax, eax
je 0x1017415a
mov edx, dword [esp + 0x1c]
mov ecx, eax
and ecx, 0xffffff7f
cmp ecx, ebx
jg 0x101741b9
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x18]
not ecx
and ecx, esi
or ecx, eax
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x30]
lea edi, [eax + edx + 1]
cmp byte [edi], 0
jne 0x10173f58
jmp 0x10174233
mov eax, dword [esp + 0x14]
push edx
push eax
push 0x101891e4
call fcn.1014d117
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x1c]
add esp, 0xc
mov dword [ecx], eax
mov dword [esp + 0x20], 3
jmp 0x1017426a
call fcn.1016e907
test eax, eax
jne 0x10174200
lea edx, [ebp + 2]
push edx
call fcn.101437b7
add esp, 4
test eax, eax
mov dword [esp + 0x10], eax
jne 0x1017420d
pop edi
pop esi
pop ebp
mov eax, 7
pop ebx
add esp, 0x1c
ret
mov eax, dword [esp + 0x10]
mov ecx, ebp
mov edx, ecx
shr ecx, 2
mov edi, eax
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov byte [eax + ebp], 0
mov byte [eax + ebp + 1], 0
and dword [esp + 0x18], 0xffffffbf
mov esi, dword [esp + 0x28]
push esi
call fcn.101434e7
mov ecx, dword [esp + 0x3c]
add esp, 4
test eax, eax
mov dword [ecx], eax
jne 0x1017427b
push esi
push 0x101891d4
call fcn.1014d117
mov edx, dword [esp + 0x48]
add esp, 8
mov dword [edx], eax
mov esi, dword [esp + 0x10]
mov dword [esp + 0x20], 1
push esi
call fcn.10139447
add esp, 4
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x3c]
pop edi
mov dword [eax], ecx
mov eax, dword [esp + 0xc]
pop esi
pop ebp
mov dword [edx], eax
mov eax, dword [esp + 0x14]
pop ebx
add esp, 0x1c
ret