Function at 0x41b970
Capabilities:
Encode data using xor
Hash data using fnv
Parse credit card information
Query environment variable
Read .ini file

Disassembly:
cmp ecx, 0x100
jae 0x41889d
cmp byte [esi], 0x40
je 0x41ba00
cmp byte [esi], 0x2e
jne 0x41ba7d
cmp byte [esi + 1], 0x2e
je 0x41ba7d
cmp dword [0x43207c], 0
je 0x41ba7d
push edi
mov edi, dword [0x43200c]
sub edi, 2
sub edi, ecx
push ecx
push esi
mov esi, dword [0x43207c]
lodsb al, byte [esi]
movzx ecx, al
sub edi, ecx
cmp edi, dword [0x43202c]
jb 0x4186d8
mov word [edi], 0
add edi, 2
mov ebx, edi
rep movsb byte es:[edi], byte [esi]
pop esi
pop ecx
add al, cl
jb 0x41889d
rep movsb byte es:[edi], byte [esi]
pop edi
push ebx
push esi
movzx ecx, al
mov byte [ebx - 1], al
mov esi, ebx
call fcn.0041b970
pop esi
pop ebx
cmp ebx, dword [eax + 0x18]
jne 0x41b9ff
lea edx, [ebx - 2]
mov dword [0x43200c], edx
ret
cmp ecx, 2
jne 0x41ba7d
mov al, byte [esi + 1]
mov ebx, 0x43219b
xlatb
cmp al, 0x40
je 0x41ba5b
cmp al, 0x62
je 0x41ba41
cmp al, 0x72
je 0x41ba41
cmp al, 0x66
jne 0x41ba7d
add esi, 2
mov eax, dword [0x432084]
or eax, eax
jne 0x41ba3e
mov eax, dword [0x432048]
mov dword [0x4320b0], eax
call fcn.0041bc4d
mov dword [0x432084], eax
xor ebx, ebx
ret
mov eax, dword [0x432080]
add esi, 2
or eax, eax
je 0x41ba4f
jmp 0x41ba3e
call fcn.0041bc4d
mov dword [0x432080], eax
jmp 0x41ba3e
add esi, 2
mov eax, dword [0x432084]
or eax, eax
jne 0x41ba6c
call fcn.0041bc4d
mov dword [0x432080], eax
mov dword [0x432084], 0
jmp 0x41ba3e
cmp byte [esi], 0x25
je 0x41bae3
cmp byte [esi], 0x24
je 0x41ba98
cmp byte [esi], 0x3f
jne 0x41bafc
cmp ecx, 1
jne 0x41bafc
inc esi
mov eax, 0xf
ret
cmp ecx, 3
je 0x41bad2
ja 0x41bafc
inc esi
cmp ecx, 1
jbe 0x41bab7
inc esi
cmp byte [esi - 1], 0x24
je 0x41bac6
cmp byte [esi - 1], 0x25
je 0x41bacc
sub esi, 2
jmp 0x41bafc
xor eax, eax
ret
mov eax, 1
ret
mov eax, 2
ret
mov eax, 3
ret
mov eax, 4
ret
cmp word [esi + 1], 0x2525
jne 0x41bafc
add esi, 3
mov eax, 5
ret
cmp ecx, 2
ja 0x41bafc
inc esi
cmp cl, 1
je 0x41baba
lodsb al, byte [esi]
mov ebx, 0x43219b
xlatb
cmp al, 0x74
je 0x41bac0
sub esi, 2
xor ebx, ebx
mov eax, 0x811c9dc5
mov ebp, 0x1000193
xor al, byte [esi + ebx]
mul ebp
inc bl
cmp bl, cl
jb 0x41bb08
mov ebp, eax
shl eax, 8
and ebp, 0xff000000
xor ebp, eax
or ebp, ebx
mov dword [0x43208c], ebp
push edi
push esi
push ecx
mov ecx, 0x20
mov ebx, 0x432094
mov edx, dword [ebx]
or edx, edx
je 0x41bb7b
xor eax, eax
shl ebp, 1
adc eax, 0
lea ebx, [edx + eax*4]
dec ecx
jne 0x41bb35
mov dword [0x432090], ebx
pop edx
mov eax, dword [ebx]
or eax, eax
je 0x41bbb0
mov ebx, esi
mov ebp, dword [0x43208c]
mov esi, ebx
mov ecx, edx
mov edi, dword [eax + 4]
mov edi, dword [edi + 0x18]
repe cmpsb byte [esi], byte es:[edi]
je 0x41bb73
mov eax, dword [eax]
or eax, eax
jne 0x41bb5d
jmp 0x41bbb0
add esp, 4
pop edi
mov eax, dword [eax + 4]
ret
mov edx, dword [0x43202c]
lea eax, [edx + 8]
cmp eax, dword [0x43200c]
ja 0x4186d8
mov dword [0x43202c], eax
xor eax, eax
mov dword [edx], eax
mov dword [edx + 4], eax
shl ebp, 1
adc eax, 0
mov dword [ebx], edx
lea ebx, [edx + eax*4]
dec ecx
jne 0x41bb7b
mov dword [0x432090], ebx
pop edx
mov ecx, edx
pop esi
cmp byte [esi - 2], 0
je 0x41bc17
mov al, byte [esi]
cmp al, 0x30
jb 0x41bbc3
cmp al, 0x39
jbe 0x41bbc7
cmp al, 0x24
jne 0x41bbd0
add esi, ecx
mov eax, 0xf
pop edi
ret
call fcn.0041b909
jae 0x41bbc9
call fcn.0041b8dd
jae 0x41bbc9
call fcn.0041b85f
jae 0x41bbc9
sub esi, 2
mov edi, 0x42c3a5
call fcn.0041b7f9
or al, al
jne 0x41bbc9
mov edi, 0x42c3cf
call fcn.0041b7f9
or al, al
jne 0x41bbc9
mov edi, 0x42c3ef
call fcn.0041b7f9
or al, al
jne 0x41bbc9
inc esi
movzx ecx, byte [esi]
inc esi
mov edx, dword [0x43202c]
lea eax, [edx + 8]
cmp eax, dword [0x43200c]
ja 0x4186d8
mov dword [0x43202c], eax
mov ebx, esi
add esi, ecx
mov eax, dword [0x432090]
mov edi, dword [eax]
mov dword [edx], edi
mov dword [eax], edx
call fcn.0041bc4d
mov dword [edx + 4], eax
mov dword [eax + 0x18], ebx
pop edi
ret