Function at 0x100037d0
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x118
push ebx
mov ebx, dword [esp + 0x120]
push esi
mov esi, eax
test esi, esi
je 0x10003b54
cmp byte [esi], 0
je 0x10003b54
test ebx, ebx
je 0x10003b54
lea ebx, [ebx]
mov al, byte [esi]
cmp al, 0x20
je 0x1000380a
cmp al, 9
jne 0x1000380d
inc esi
jmp 0x10003800
push ebp
mov byte [ebx], 0
xor ebp, ebp
movzx eax, byte [esi]
push eax
call fcn.10014db1
add esp, 4
test eax, eax
je 0x1000383e
movzx eax, byte [esi]
push eax
call fcn.10014ff5
mov byte [ebp + 0x100515a0], al
inc ebp
add esp, 4
inc esi
cmp ebp, 0x20
jl 0x10003813
jmp 0x10003854
mov al, byte [esi]
cmp al, 0x3f
je 0x1000384c
cmp al, 0x2a
je 0x1000384c
cmp al, 0x3a
jne 0x10003854
mov byte [ebp + 0x100515a0], al
inc ebp
inc esi
push edi
mov byte [ebp + 0x100515a0], 0
xor edi, edi
xor ebp, ebp
mov ecx, dword [ebp + 0x1004d320]
mov eax, 0x100515a0
jmp 0x10003870
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10003890
test dl, dl
je 0x1000388c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10003890
add eax, 2
add ecx, 2
test dl, dl
jne 0x10003870
xor eax, eax
jmp 0x10003895
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100038a7
add ebp, 0x14
inc edi
cmp ebp, 0x62c
jb 0x10003860
jmp 0x100038ac
cmp edi, 0x4f
jb 0x100038ce
push 0x100515a0
push str.Unrecognized_command:__s
push ebx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
pop edi
pop ebp
pop esi
or eax, 0xffffffff
pop ebx
add esp, 0x118
ret
lea edi, [edi + edi*4]
add edi, edi
xor ebp, ebp
xor ebx, ebx
add edi, edi
lea esp, [esp]
mov al, byte [esi]
cmp al, 0x20
je 0x100038ea
cmp al, 9
jne 0x100038ed
inc esi
jmp 0x100038e0
mov ecx, dword [edi + 0x1004d324]
mov al, byte [ebx + ecx]
inc ebx
test al, al
je 0x10003a91
movzx ecx, al
add ecx, 0xffffffbf
cmp ecx, 0x35
ja case.0x10003915.66
movzx edx, byte [ecx + 0x10003b7c]
jmp dword [edx*4 + 0x10003b60]
mov al, byte [esi]
cmp al, 0x2c
je 0x1000392e
cmp al, 0x3d
je 0x1000392e
test al, al
je 0x1000392e
cmp al, 0x3b
jne case.0x10003915.65
mov dword [0x1005139c], ebp
test al, al
je 0x10003a5c
inc esi
jmp 0x10003a5c
call sub.OllyDbg.EXE_Ordinal_60
push eax
push 0
push 0
push 0
push 0
push 0
lea eax, [esp + 0x28]
push esi
push eax
call sub.OllyDbg.EXE_Ordinal_36
mov ebp, eax
add esp, 0x20
test ebp, ebp
jl 0x10003b17
cmp dword [esp + 0x10], 0
je 0x10003b17
cmp dword [esp + 0x14], 4
jne 0x10003ad3
mov ecx, dword [esp + 0x18]
push ecx
call sub.OllyDbg.EXE_Ordinal_44
add esp, 4
test eax, eax
je 0x10003af4
mov edx, dword [esp + 0x18]
add esi, ebp
mov dword [0x1005139c], edx
xor ebp, ebp
jmp 0x10003a5c
mov edx, 0x100514a0
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x100039b1
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100039c0
jmp 0x10003a58
mov al, byte [esi]
cmp al, 0x2c
je 0x100039de
cmp al, 0x3d
je 0x100039de
test al, al
je 0x100039de
cmp al, 0x3b
jne case.0x10003915.86
mov dword [esp + 0x10], ebp
mov dword [esp + 0x18], ebp
cmp byte [esi], 0
je 0x10003a5c
inc esi
jmp 0x10003a5c
call sub.OllyDbg.EXE_Ordinal_60
push eax
push ebp
push ebp
push ebp
push ebp
push ebp
push esi
push 0x100516a0
call sub.OllyDbg.EXE_Ordinal_36
add esp, 0x20
cmp eax, ebp
jl 0x10003a13
cmp dword [0x100516a0], ebp
jne 0x10003a5a
mov edx, dword [esp + 0x12c]
mov eax, 0x100516b2
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x10003a21
pop edi
pop ebp
pop esi
or eax, 0xffffffff
pop ebx
add esp, 0x118
ret
mov edx, 0x100514a0
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x10003a42
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10003a51
sub eax, edx
add esi, eax
mov eax, dword [edi + 0x1004d324]
cmp byte [ebx + eax], 0
je 0x100038e0
lea esp, [esp]
mov al, byte [esi]
cmp al, 0x20
je 0x10003a7a
cmp al, 9
jne 0x10003a7d
inc esi
jmp 0x10003a70
mov al, byte [esi]
cmp al, 0x2c
je 0x10003a8b
cmp al, 0x3d
jne 0x100038e0
inc esi
jmp 0x100038e0
mov al, byte [esi]
test al, al
je 0x10003aae
cmp al, 0x3b
je 0x10003aae
mov ecx, dword [esp + 0x12c]
push esi
push str.Extra_characters_on_line:__.64s
push ecx
jmp 0x100038b7
mov edx, dword [edi + 0x1004d328]
mov eax, dword [esp + 0x12c]
mov ecx, dword [edi + 0x1004d32c]
push edx
push eax
call ecx
add esp, 8
pop edi
pop ebp
pop esi
pop ebx
add esp, 0x118
ret
mov edi, dword [esp + 0x12c]
mov ecx, 7
mov esi, str.Integer_expression_expected
rep movsd dword es:[edi], dword [esi]
pop edi
pop ebp
pop esi
or eax, 0xffffffff
pop ebx
add esp, 0x118
ret
mov edi, dword [esp + 0x12c]
mov ecx, 6
mov esi, str.Address_points_to_nowhere
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
pop ebp
pop esi
or eax, 0xffffffff
pop ebx
add esp, 0x118
ret
mov edx, dword [esp + 0x12c]
lea eax, [esp + 0x22]
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x10003b26
pop edi
pop ebp
pop esi
or eax, 0xffffffff
pop ebx
add esp, 0x118
ret
movzx edx, al
mov eax, dword [esp + 0x12c]
push edx
push str.Internal_error:_undefined_operand_type__c
push eax
jmp 0x100038b7
pop esi
or eax, 0xffffffff
pop ebx
add esp, 0x118
ret