Function at 0x4112dd
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x10
mov edi, eax
mov dword [ebp - 0x10], edx
or eax, 0xffffffff
test edx, edx
je 0x4119e0
mov eax, dword [edx]
mov dword [ebp - 0x14], eax
mov ebx, eax
jmp 0x41130a
cmp byte [ebx], 0x25
jne 0x411309
add ebx, 3
jmp 0x41130a
inc ebx
mov cl, byte [ebx]
lea eax, [ecx - 0x61]
cmp al, 0x19
lea eax, [ecx - 0x41]
setbe dl
cmp al, 0x19
setbe al
or eax, edx
test al, 1
jne 0x4112ff
lea eax, [ecx - 0x30]
cmp al, 9
jbe 0x4112ff
cmp cl, 0x2d
sete dl
cmp cl, 0x5f
sete al
or eax, edx
test al, 1
jne 0x4112ff
cmp cl, 0x2e
je 0x4112ff
cmp cl, 0x21
je 0x4112ff
cmp cl, 0x7e
je 0x4112ff
cmp cl, 0x2a
je 0x4112ff
cmp cl, 0x27
je 0x4112ff
cmp cl, 0x28
je 0x4112ff
cmp cl, 0x29
je 0x4112ff
cmp cl, 0x25
jne 0x4113b3
movzx esi, byte [ebx + 1]
lea eax, [esi - 0x30]
cmp al, 9
lea eax, [esi - 0x61]
setbe dl
cmp al, 5
setbe al
or eax, edx
test al, 1
jne 0x411388
lea eax, [esi - 0x41]
cmp al, 5
ja 0x41143d
movzx esi, byte [ebx + 2]
lea eax, [esi - 0x30]
cmp al, 9
lea eax, [esi - 0x61]
setbe dl
cmp al, 5
setbe al
or eax, edx
test al, 1
jne 0x4112ff
lea eax, [esi - 0x41]
cmp al, 5
jbe 0x4112ff
jmp 0x4113bc
cmp cl, 0x3b
je 0x4112ff
cmp cl, 0x3a
je 0x4112ff
cmp cl, 0x26
je 0x4112ff
cmp cl, 0x3d
je 0x4112ff
cmp cl, 0x2b
je 0x4112ff
cmp cl, 0x24
je 0x4112ff
cmp cl, 0x2c
je 0x4112ff
cmp cl, 0x40
jne 0x41143d
test edi, edi
je 0x41143a
mov eax, dword [edi + 0x10]
test eax, eax
je 0x41140a
push eax
call dword [0x58b640]
pop esi
mov eax, dword [ebp - 0x10]
test byte [edi + 0x24], 2
mov edx, dword [eax]
je 0x411427
mov eax, ebx
sub eax, edx
push eax
push edx
call fcn.00433d70
pop edx
pop ecx
mov dword [edi + 0x18], eax
jmp 0x41143a
mov eax, ebx
push 0
sub eax, edx
push eax
push edx
call fcn.00410a8b
add esp, 0xc
mov dword [edi + 0x10], eax
inc ebx
jmp 0x41145c
test edi, edi
je 0x411457
mov eax, dword [edi + 0x10]
test eax, eax
je 0x411450
push eax
call dword [0x58b640]
pop eax
mov dword [edi + 0x10], 0
mov edx, dword [ebp - 0x10]
mov ebx, dword [edx]
mov dword [ebp - 0x18], ebx
mov al, byte [ebx]
cmp al, 0x2f
jne 0x4114a5
test edi, edi
je 0x41171f
mov eax, dword [edi + 8]
test eax, eax
je 0x41147c
push eax
call dword [0x58b640]
pop eax
mov eax, dword [edi + 0xc]
mov dword [edi + 8], 0
test eax, eax
je 0x411492
push eax
call dword [0x58b640]
pop eax
mov dword [edi + 0xc], 0
mov dword [edi + 0x14], 0
jmp 0x41171f
xor esi, esi
cmp al, 0x5b
jne 0x41155e
mov dword [ebp - 0x1c], 0
inc ebx
mov cl, byte [ebx]
cmp cl, 0x3a
jne 0x4114df
cmp dword [ebp - 0x1c], 0
jne 0x411748
test esi, esi
jne 0x4114d6
inc ebx
cmp byte [ebx], 0x3a
jne 0x411748
mov dword [ebp - 0x1c], 1
jmp 0x41150b
lea eax, [ecx - 0x30]
cmp al, 9
lea eax, [ecx - 0x61]
setbe dl
cmp al, 5
setbe al
or eax, edx
test al, 1
jne 0x4114fc
lea eax, [ecx - 0x41]
cmp al, 5
ja 0x411501
inc ebx
mov cl, byte [ebx]
jmp 0x4114df
cmp esi, 7
je 0x41150c
cmp byte [ebx], 0x3a
jne 0x411512
inc ebx
inc esi
cmp esi, 7
jle 0x4114b7
cmp dword [ebp - 0x1c], 0
sete dl
xor eax, eax
cmp esi, 8
setne al
test eax, edx
jne 0x411748
cmp byte [ebx], 0x5d
jne 0x411748
test edi, edi
je 0x41155b
mov eax, dword [edi + 0xc]
test eax, eax
je 0x411545
push eax
call dword [0x58b640]
pop eax
mov eax, ebx
sub eax, dword [ebp - 0x18]
dec eax
push eax
mov eax, dword [ebp - 0x18]
inc eax
push eax
call fcn.00433d70
pop edx
pop ecx
mov dword [edi + 0xc], eax
inc ebx
jmp 0x411585
mov al, byte [ebx]
cmp al, 0x2e
je 0x411748
sub eax, 0x30
cmp al, 9
ja 0x411574
inc ebx
mov al, byte [ebx]
jmp 0x411568
cmp esi, 3
je 0x41157f
cmp byte [ebx], 0x2e
jne 0x411585
inc ebx
inc esi
cmp esi, 3
jle 0x41155e
mov eax, dword [ebp - 0x18]
cmp byte [eax], 0x5b
je 0x411683
cmp esi, 3
jle 0x4115be
cmp byte [ebx], 0x2e
jne 0x4115a1
inc ebx
cmp ebx, 1
jne 0x4115be
mov al, byte [ebx]
lea edx, [eax - 0x61]
cmp dl, 0x19
setbe dl
sub eax, 0x41
cmp al, 0x19
setbe al
or eax, edx
test al, 1
je 0x411683
mov cl, byte [ebx]
lea eax, [ecx - 0x61]
cmp al, 0x19
lea eax, [ecx - 0x41]
seta dl
cmp al, 0x19
seta al
movzx eax, al
test eax, edx
je 0x4115e2
lea eax, [ecx - 0x30]
cmp al, 9
ja 0x411748
inc ebx
mov cl, byte [ebx]
lea eax, [ecx - 0x61]
cmp al, 0x19
lea eax, [ecx - 0x41]
setbe dl
cmp al, 0x19
setbe al
or eax, edx
test al, 1
jne 0x4115e2
lea eax, [ecx - 0x30]
cmp al, 9
jbe 0x4115e2
cmp cl, 0x2d
jne 0x41160d
dec ebx
cmp byte [ebx], 0x2e
jmp 0x41161f
cmp cl, 0x2e
jne 0x411628
dec ebx
mov al, byte [ebx]
cmp al, 0x2d
je 0x411748
cmp al, 0x2e
je 0x411748
inc ebx
jmp 0x4115e2
mov ecx, ebx
cmp byte [ebx - 1], 0x2e
jne 0x411633
lea ecx, [ebx - 1]
dec ecx
cmp ecx, dword [ebp - 0x18]
jb 0x411659
movzx esi, byte [ecx]
lea eax, [esi - 0x61]
cmp al, 0x19
lea eax, [esi - 0x41]
setbe dl
cmp al, 0x19
setbe al
or eax, edx
test al, 1
jne 0x411633
lea eax, [esi - 0x30]
cmp al, 9
jbe 0x411633
inc ecx
cmp ecx, dword [ebp - 0x18]
je 0x411665
cmp byte [ecx - 1], 0x2e
jne 0x411683
mov al, byte [ecx]
lea edx, [eax - 0x61]
cmp dl, 0x19
seta dl
sub eax, 0x41
cmp al, 0x19
seta al
movzx eax, al
test eax, edx
jne 0x411748
test edi, edi
je 0x4116e2
mov eax, dword [edi + 8]
test eax, eax
je 0x411696
push eax
call dword [0x58b640]
pop eax
mov edx, dword [ebp - 0x18]
mov dword [edi + 8], 0
cmp byte [edx], 0x5b
je 0x4116e2
mov eax, dword [edi + 0xc]
test eax, eax
je 0x4116b4
push eax
call dword [0x58b640]
pop esi
test byte [edi + 0x24], 2
je 0x4116cc
mov eax, ebx
sub eax, dword [ebp - 0x18]
push eax
push dword [ebp - 0x18]
call fcn.00433d70
pop edx
pop ecx
jmp 0x4116df
mov eax, ebx
push 0
sub eax, dword [ebp - 0x18]
push eax
push dword [ebp - 0x18]
call fcn.00410a8b
add esp, 0xc
mov dword [edi + 0xc], eax
cmp byte [ebx], 0x3a
jne 0x41171a
inc ebx
mov al, byte [ebx]
sub eax, 0x30
cmp al, 9
ja 0x41171a
test edi, edi
je 0x4116fc
mov dword [edi + 0x14], 0
mov dl, byte [ebx]
lea eax, [edx - 0x30]
cmp al, 9
ja 0x41171a
test edi, edi
je 0x411717
imul eax, dword [edi + 0x14], 0xa
movsx edx, dl
lea eax, [eax + edx - 0x30]
mov dword [edi + 0x14], eax
inc ebx
jmp 0x4116fc
mov eax, dword [ebp - 0x10]
mov dword [eax], ebx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx]
test eax, eax
je 0x411748
mov cl, byte [eax]
test cl, cl
sete dl
cmp cl, 0x2f
sete al
or eax, edx
test al, 1
jne 0x4119de
cmp cl, 0x3f
je 0x4119de
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
mov dword [eax], edx
mov cl, byte [edx]
lea eax, [ecx - 0x61]
cmp al, 0x19
lea eax, [ecx - 0x41]
seta dl
cmp al, 0x19
seta al
movzx eax, al
test eax, edx
je 0x41184e
lea eax, [ecx - 0x30]
cmp al, 9
jbe 0x41184e
cmp cl, 0x2d
setne dl
xor eax, eax
cmp cl, 0x5f
setne al
test eax, edx
je 0x41184e
cmp cl, 0x2e
je 0x41184e
cmp cl, 0x21
je 0x41184e
cmp cl, 0x7e
je 0x41184e
cmp cl, 0x2a
je 0x41184e
cmp cl, 0x27
je 0x41184e
cmp cl, 0x28
je 0x41184e
cmp cl, 0x29
je 0x41184e
cmp cl, 0x25
jne 0x41181c
mov eax, dword [ebp - 0x14]
mov bl, byte [eax + 1]
lea eax, [ebx - 0x30]
cmp al, 9
lea eax, [ebx - 0x61]
seta dl
cmp al, 5
seta al
movzx eax, al
test eax, edx
je 0x4117f6
lea eax, [ebx - 0x41]
cmp al, 5
ja 0x411844
mov edx, dword [ebp - 0x14]
mov bl, byte [edx + 2]
lea eax, [ebx - 0x30]
cmp al, 9
lea eax, [ebx - 0x61]
seta dl
cmp al, 5
seta al
movzx eax, al
test eax, edx
je 0x41184e
lea eax, [ebx - 0x41]
cmp al, 5
jbe 0x41184e
jmp 0x411821
cmp cl, 0x24
je 0x41184e
cmp cl, 0x2c
je 0x41184e
cmp cl, 0x3b
je 0x41184e
cmp cl, 0x3a
je 0x41184e
cmp cl, 0x40
je 0x41184e
cmp cl, 0x26
je 0x41184e
cmp cl, 0x3d
je 0x41184e
cmp cl, 0x2b
je 0x41184e
mov eax, 5
jmp 0x4119e0
mov eax, dword [ebp - 0x14]
cmp byte [eax], 0x25
jne 0x41186e
add eax, 3
mov dword [ebp - 0x14], eax
jmp 0x411871
mov edx, dword [ebp - 0x14]
cmp byte [edx], 0x25
jne 0x41186e
add edx, 3
mov dword [ebp - 0x14], edx
jmp 0x411871
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov cl, byte [eax]
lea eax, [ecx - 0x61]
cmp al, 0x19
lea eax, [ecx - 0x41]
setbe dl
cmp al, 0x19
setbe al
or eax, edx
test al, 1
jne 0x41185e
lea eax, [ecx - 0x30]
cmp al, 9
jbe 0x41185e
cmp cl, 0x2d
sete dl
cmp cl, 0x5f
sete al
or eax, edx
test al, 1
jne 0x41185e
cmp cl, 0x2e
je 0x41185e
cmp cl, 0x21
je 0x41185e
cmp cl, 0x7e
je 0x41185e
cmp cl, 0x2a
je 0x41185e
cmp cl, 0x27
je 0x41185e
cmp cl, 0x28
je 0x41185e
cmp cl, 0x29
je 0x41185e
cmp cl, 0x25
jne 0x41191d
mov edx, dword [ebp - 0x14]
mov bl, byte [edx + 1]
lea eax, [ebx - 0x30]
cmp al, 9
lea eax, [ebx - 0x61]
setbe dl
cmp al, 5
setbe al
or eax, edx
test al, 1
jne 0x4118f0
lea eax, [ebx - 0x41]
cmp al, 5
ja 0x411965
mov eax, dword [ebp - 0x14]
mov bl, byte [eax + 2]
lea eax, [ebx - 0x30]
cmp al, 9
lea eax, [ebx - 0x61]
setbe dl
cmp al, 5
setbe al
or eax, edx
test al, 1
jne 0x41185e
lea eax, [ebx - 0x41]
cmp al, 5
jbe 0x41185e
jmp 0x411926
cmp cl, 0x24
je 0x41185e
cmp cl, 0x2c
je 0x41185e
cmp cl, 0x3b
je 0x41185e
cmp cl, 0x3a
je 0x41185e
cmp cl, 0x40
je 0x41185e
cmp cl, 0x26
je 0x41185e
cmp cl, 0x3d
je 0x41185e
cmp cl, 0x2b
je 0x41185e
test edi, edi
je 0x4119d6
mov eax, dword [edi + 0xc]
test eax, eax
je 0x411978
push eax
call dword [0x58b640]
pop esi
mov eax, dword [edi + 0x10]
mov dword [edi + 0xc], 0
test eax, eax
je 0x41198e
push eax
call dword [0x58b640]
pop ebx
mov eax, dword [edi + 8]
mov dword [edi + 0x10], 0
test eax, eax
je 0x4119a4
push eax
call dword [0x58b640]
pop ecx
mov eax, dword [ebp - 0x10]
test byte [edi + 0x24], 2
mov edx, dword [eax]
je 0x4119c2
mov eax, dword [ebp - 0x14]
sub eax, edx
push eax
push edx
call fcn.00433d70
mov dword [edi + 8], eax
pop eax
pop edx
jmp 0x4119d6
mov eax, dword [ebp - 0x14]
push 0
sub eax, edx
push eax
push edx
call fcn.00410a8b
add esp, 0xc
mov dword [edi + 8], eax
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
mov dword [edx], eax
xor eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret