Function at 0x1003d690
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100d1c4b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push ebx
push esi
mov esi, ecx
xor cl, cl
cmp dword [esi + 0x4c], 0xffffffff
je 0x1003da50
lea esp, [esp]
mov eax, dword [esi + 0x4c]
cmp eax, 0x7c
je 0x1003da50
cmp eax, 0x29
jne 0x1003d6e8
cmp dword [esi + 0x10], 0
jne 0x1003da50
test dword [esi + 0x50], 0x10000000
je 0x1003da62
cmp eax, 0x2e
jne 0x1003d7a5
push 0x14
call fcn.100aba71
mov ecx, eax
add esp, 4
mov dword [ebp - 0x10], ecx
mov dword [ebp - 4], 0
test ecx, ecx
je 0x1003d72f
mov dword [ecx], 0x100fc5dc
mov dword [ecx + 4], 5
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
jmp 0x1003d731
xor ecx, ecx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x1003d754
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov dword [esi + 0x28], ecx
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1003d799
cmp byte [eax], 0x5c
jne 0x1003d797
inc eax
cmp eax, ecx
je 0x1003d797
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1003d784
mov dl, byte [eax]
cmp dl, 0x28
je 0x1003d795
cmp dl, 0x29
je 0x1003d795
test cl, 0x10
jne 0x1003d797
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1003d795
cmp cl, 0x7d
jne 0x1003d797
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1003c070
jmp 0x1003da3d
cmp eax, 0x5c
jne 0x1003d8c2
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1003d7ea
cmp byte [eax], 0x5c
jne 0x1003d7e8
inc eax
cmp eax, ecx
je 0x1003d7e8
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1003d7d5
mov dl, byte [eax]
cmp dl, 0x28
je 0x1003d7e6
cmp dl, 0x29
je 0x1003d7e6
test cl, 0x10
jne 0x1003d7e8
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1003d7e6
cmp cl, 0x7d
jne 0x1003d7e8
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1003c070
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x1003d853
cmp byte [esi + 0x48], 0x62
jne 0x1003d853
push 4
lea ecx, [esi + 0x24]
call fcn.100206e0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1003d847
cmp byte [eax], 0x5c
jne 0x1003d845
inc eax
cmp eax, ecx
je 0x1003d845
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1003d832
mov cl, byte [eax]
cmp cl, 0x28
je 0x1003d843
cmp cl, 0x29
je 0x1003d843
test dl, 0x10
jne 0x1003d845
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1003d843
cmp cl, 0x7d
jne 0x1003d845
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1003c070
jmp 0x1003da44
test eax, eax
je 0x1003d8b6
cmp byte [esi + 0x48], 0x42
jne 0x1003d8b6
push 4
lea ecx, [esi + 0x24]
call fcn.100206e0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1003d8aa
cmp byte [eax], 0x5c
jne 0x1003d8a8
inc eax
cmp eax, ecx
je 0x1003d8a8
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1003d895
mov cl, byte [eax]
cmp cl, 0x28
je 0x1003d8a6
cmp cl, 0x29
je 0x1003d8a6
test dl, 0x10
jne 0x1003d8a8
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1003d8a6
cmp cl, 0x7d
jne 0x1003d8a8
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1003c070
jmp 0x1003da44
mov ecx, esi
call fcn.1003eb70
jmp 0x1003da3d
cmp eax, 0x5b
jne 0x1003d967
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1003d907
cmp byte [eax], 0x5c
jne 0x1003d905
inc eax
cmp eax, ecx
je 0x1003d905
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1003d8f2
mov dl, byte [eax]
cmp dl, 0x28
je 0x1003d903
cmp dl, 0x29
je 0x1003d903
test cl, 0x10
jne 0x1003d905
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1003d903
cmp cl, 0x7d
jne 0x1003d905
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1003c070
mov ecx, esi
call fcn.1003eac0
cmp dword [esi + 0x4c], 0x5d
jne 0x1003da69
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1003d95b
cmp byte [eax], 0x5c
jne 0x1003d959
inc eax
cmp eax, ecx
je 0x1003d959
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1003d946
mov dl, byte [eax]
cmp dl, 0x28
je 0x1003d957
cmp dl, 0x29
je 0x1003d957
test cl, 0x10
jne 0x1003d959
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1003d957
cmp cl, 0x7d
jne 0x1003d959
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1003c070
jmp 0x1003da3d
cmp eax, 0x28
jne 0x1003d9c9
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1003d9a8
cmp byte [eax], 0x5c
jne 0x1003d9a6
inc eax
cmp eax, ecx
je 0x1003d9a6
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1003d993
mov dl, byte [eax]
cmp dl, 0x28
je 0x1003d9a4
cmp dl, 0x29
je 0x1003d9a4
test cl, 0x10
jne 0x1003d9a6
mov cl, byte [eax]
cmp cl, 0x7b
je 0x1003d9a4
cmp cl, 0x7d
jne 0x1003d9a6
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.1003c070
mov ecx, esi
call fcn.1003ec30
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.1003ea60
test bl, bl
je 0x1003da44
jmp 0x1003da3d
cmp eax, 0x5e
jne 0x1003d9e1
push 2
lea ecx, [esi + 0x24]
call fcn.100206e0
mov ecx, esi
call fcn.1003d640
jmp 0x1003da44
cmp eax, 0x24
jne 0x1003d9f9
push 3
lea ecx, [esi + 0x24]
call fcn.100206e0
mov ecx, esi
call fcn.1003d640
jmp 0x1003da44
cmp eax, 0x2a
je 0x1003da77
cmp eax, 0x2b
je 0x1003da77
cmp eax, 0x3f
je 0x1003da77
cmp eax, 0x7b
je 0x1003da77
cmp eax, 0x7d
jne 0x1003da1b
test dword [esi + 0x50], 0x10000000
je 0x1003da70
cmp eax, 0x5d
jne 0x1003da29
test dword [esi + 0x50], 0x10000000
je 0x1003da69
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.10022940
mov ecx, esi
call fcn.1003d640
mov ecx, esi
call fcn.1003ecf0
cmp dword [esi + 0x4c], 0xffffffff
mov cl, 1
jne 0x1003d6c0
mov al, cl
mov ecx, dword [ebp - 0xc]
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
push 5
call fcn.100a70c4
push 4
call fcn.100a70c4
push 6
call fcn.100a70c4
push 0xa
call fcn.100a70c4
int3