Function at 0x100389b0
Capabilities:
Parse credit card information

Disassembly:
push ebx
mov ebx, dword [esp + 0xc]
push edi
mov edi, eax
test ebx, ebx
jne 0x100389c1
pop edi
xor eax, eax
pop ebx
ret
push ebx
push 1
push esi
call sub.MSVCR100.dll_memset
mov eax, dword [edi + 0x4c]
mov ecx, dword [eax + 0x20]
add esp, 0xc
test ecx, ecx
je 0x100389f3
mov edx, dword [edi + 0x4c]
mov eax, dword [ecx + 0x10]
mov edx, dword [edx + 0x10]
cmp eax, edx
jb 0x100389f3
sub eax, edx
sar eax, 3
mov byte [eax + esi], 0
mov ecx, dword [ecx]
test ecx, ecx
jne 0x100389d7
push ebp
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx]
mov ebp, edi
and ebp, 0xff
mov al, byte [ebp*2 + 0x1004e340]
add ecx, 4
and al, 0x78
mov dword [esp + 0x10], ecx
cmp al, 0x18
jne 0x10038a1f
mov eax, edi
shr eax, 0x18
and byte [eax + esi], 0xfe
movzx eax, word [ebp*2 + 0x1004e340]
shr eax, 7
and eax, 0xf
add eax, 0xfffffffd
cmp eax, 0xa
ja case.0x10038a40.5
movzx eax, byte [eax + 0x10038d18]
jmp dword [eax*4 + 0x10038d00]
mov eax, edi
shr eax, 0x10
and eax, 0xff
and byte [eax + esi], 0xfe
jmp case.0x10038a40.5
mov ecx, edi
shr ecx, 0x10
mov eax, edi
shr eax, 0x18
and ecx, 0xff
cmp eax, ecx
ja 0x10038a79
mov edi, edi
and byte [eax + esi], 0xfe
inc eax
cmp eax, ecx
jbe 0x10038a70
cmp eax, ebx
jae case.0x10038a40.5
mov cl, byte [eax + esi]
mov dl, cl
add dl, dl
add cl, dl
mov byte [eax + esi], cl
inc eax
cmp eax, ebx
jb 0x10038a81
jmp case.0x10038a40.5
cmp ebp, 0x4d
je case.0x10038a40.13
cmp ebp, 0x50
je case.0x10038a40.13
cmp ebp, 0x53
je case.0x10038a40.13
cmp ebp, 0x45
je 0x10038ac0
cmp ebp, 0x46
je 0x10038ab7
cmp ebp, 0x47
je 0x10038ab7
cmp ebp, 0x48
jne case.0x10038a40.5
cmp ebp, 0x45
jne 0x10038c6f
mov ebp, ebx
jmp 0x10038c82
mov eax, edi
shr eax, 8
and eax, 0xff
cmp ebp, 0x49
jl 0x10038adf
cmp ebp, 0x4d
jle 0x10038ccd
cmp ebp, 0x4e
jl 0x10038aed
cmp ebp, 0x50
jle 0x10038cd2
cmp ebp, 0x30
jne 0x10038cda
mov eax, edi
shr eax, 0x10
lea eax, [ecx + eax*4 - 0x20000]
mov dword [esp + 0x10], eax
movzx eax, word [ebp*2 + 0x1004e340]
and eax, 7
dec eax
je 0x10038c43
dec eax
je 0x10038b34
dec eax
jne 0x100389f4
shr edi, 8
and edi, 0xff
and byte [edi + esi], 0xfe
jmp 0x100389f4
lea ecx, [ebp - 0x3d]
cmp ecx, 6
ja 0x10038be7
cmp ebp, 0x3d
je 0x10038b65
cmp ebp, 0x3f
je 0x10038b65
mov ecx, edi
shr ecx, 0x10
and ecx, 0xff
je 0x10038b65
mov eax, edi
shr eax, 8
and eax, 0xff
add ecx, eax
jmp 0x10038b67
mov ecx, ebx
cmp ebp, 0x41
je 0x10038b75
cmp ebp, 0x42
je 0x10038b75
xor edx, edx
jmp 0x10038b7a
mov edx, 3
mov eax, edi
shr eax, 8
and eax, 0xff
sub eax, edx
cmp eax, ecx
jae 0x10038b99
lea ebx, [ebx]
and byte [eax + esi], 0xfe
inc eax
cmp eax, ecx
jb 0x10038b90
cmp eax, ebx
jae 0x10038bb1
lea ecx, [ecx]
mov cl, byte [eax + esi]
mov dl, cl
add dl, dl
add cl, dl
mov byte [eax + esi], cl
inc eax
cmp eax, ebx
jb 0x10038ba0
cmp ebp, 0x40
je 0x10038bbf
cmp ebp, 0x3f
jne 0x100389f4
shr edi, 8
xor ecx, ecx
and edi, 0xff
jbe 0x10038be1
lea esp, [esp]
mov al, byte [ecx + esi]
mov dl, al
add dl, dl
add al, dl
mov byte [ecx + esi], al
inc ecx
cmp ecx, edi
jb 0x10038bd0
pop ebp
pop edi
xor eax, eax
pop ebx
ret
cmp ebp, 0x2a
jne 0x10038c18
mov ecx, edi
shr ecx, 8
and ecx, 0xff
shr edi, 0x10
cmp ecx, edi
ja 0x100389f4
mov al, byte [ecx + esi]
mov dl, al
add dl, dl
add al, dl
mov byte [ecx + esi], al
inc ecx
cmp ecx, edi
jbe 0x10038c02
jmp 0x100389f4
cmp ebp, 0x3c
jne 0x100389f4
shr edi, 8
and edi, 0xff
lea eax, [edi - 1]
cmp eax, ebx
jae 0x100389f4
and byte [eax + esi], 0xfe
inc eax
cmp eax, ebx
jb 0x10038c35
jmp 0x100389f4
cmp ebp, 0xc
je 0x100389f4
cmp ebp, 0xd
je 0x100389f4
shr edi, 8
and edi, 0xff
mov al, byte [edi + esi]
mov cl, al
add cl, cl
add al, cl
mov byte [edi + esi], al
jmp 0x100389f4
mov eax, edi
shr eax, 8
and eax, 0xff
mov ecx, edi
shr ecx, 0x10
lea ebp, [eax + ecx - 1]
shr edi, 8
xor eax, eax
and edi, 0xff
jbe 0x10038ca1
nop
mov cl, byte [eax + esi]
mov dl, cl
add dl, dl
add cl, dl
mov byte [eax + esi], cl
inc eax
cmp eax, edi
jb 0x10038c90
cmp eax, ebp
jae 0x10038cae
and byte [eax + esi], 0xfe
inc eax
cmp eax, ebp
jb 0x10038ca5
cmp eax, ebx
jae 0x10038be1
mov cl, byte [eax + esi]
mov dl, cl
add dl, dl
add cl, dl
mov byte [eax + esi], cl
inc eax
cmp eax, ebx
jb 0x10038cb6
pop ebp
pop edi
xor eax, eax
pop ebx
ret
add eax, 3
jmp 0x10038cda
movzx ecx, byte [ecx - 5]
lea eax, [eax + ecx - 1]
mov edx, eax
cmp eax, ebx
jae case.0x10038a40.12
mov cl, byte [edx + esi]
mov bl, cl
add bl, bl
add cl, bl
mov byte [edx + esi], cl
inc edx
cmp edx, dword [esp + 0x14]
jb 0x10038ce0
pop ebp
pop edi
pop ebx
ret
pop ebp
pop edi
mov eax, ebx
pop ebx
ret