Function at 0x40af90
Capabilities:
Parse credit card information

Disassembly:
push ebx
push ebp
mov ebp, dword [esp + 0xc]
mov eax, dword [ebp + 0x8c]
xor ebx, ebx
mov dword [ebp + 0x5568], ebx
mov byte [ebp + 0x5c4], bl
mov dword [ebp + 0x5554], ebx
mov ecx, dword [eax + 0x888]
mov dword [ebp + 0x5768], ecx
mov ecx, dword [eax + 0x7f8]
cmp ecx, 0x32
push esi
push edi
je 0x40afd9
cmp ecx, 0x2b
je 0x40afd9
mov esi, dword [eax + 0x83c]
call fcn.0045abb0
mov eax, dword [ebp + 0x8c]
cmp dword [eax + 0x7f8], ebx
jne 0x40aff8
mov edx, dword [eax + 0x82c]
mov eax, dword [edx + 0x24]
mov dword [ebp + 0x5550], eax
jmp 0x40affe
mov dword [ebp + 0x5550], ebx
mov eax, ebp
call fcn.0040a550
mov eax, ebp
mov dword [ebp + 0x557c], ebx
call fcn.0040abb0
mov ecx, dword [ebp + 0x8c]
mov edx, dword [ecx + 0x7f8]
cmp edx, 0x14
je 0x40b0a1
cmp edx, 0x18
je 0x40b0a1
mov eax, edx
cmp eax, 0x33
jl 0x40b034
cmp eax, 0x3c
jle 0x40b0a1
cmp eax, ebx
jne 0x40b044
mov eax, dword [ecx + 0x82c]
cmp dword [eax + 0x24], 0x23
je 0x40b0a1
call fcn.00453890
test al, al
jne 0x40b0a1
jmp 0x7cf84c
mov dword [ebp + 0x5560], ebx
push 0x60
lea esi, [ebp + 0x654]
push ebx
push esi
call fcn.00626020
mov eax, 0xffffff9c
mov dword [ebp + 0x5f0], eax
mov ecx, 0x320
mov dword [ebp + 0x60c], ecx
mov dword [ebp + 0x624], ebx
mov dword [ebp + 0x63c], ebx
mov dword [esi], ebx
mov dword [ebp + 0x5f4], eax
mov dword [ebp + 0x610], ecx
mov dword [ebp + 0x628], ebx
mov dword [ebp + 0x640], ebx
mov dword [ebp + 0x664], 1
mov dword [ebp + 0x5f8], eax
mov dword [ebp + 0x614], ecx
mov dword [ebp + 0x62c], ebx
mov dword [ebp + 0x644], ebx
mov dword [ebp + 0x674], 2
mov dword [ebp + 0x5fc], eax
mov dword [ebp + 0x618], ecx
mov dword [ebp + 0x630], ebx
mov dword [ebp + 0x648], ebx
mov dword [ebp + 0x684], 3
mov dword [ebp + 0x600], eax
mov dword [ebp + 0x61c], ecx
mov dword [ebp + 0x634], ebx
mov dword [ebp + 0x64c], ebx
mov dword [ebp + 0x694], 4
mov dword [ebp + 0x604], eax
mov dword [ebp + 0x620], ecx
mov dword [ebp + 0x638], ebx
mov dword [ebp + 0x650], ebx
mov dword [ebp + 0x6a4], 5
mov eax, dword [ebp + 0x554c]
add esp, 0xc
cmp eax, 1
mov dword [ebp + 0x553c], ebx
je 0x40b1c1
cmp eax, 3
je 0x40b1c1
cmp eax, 5
je 0x40b1c1
cmp eax, 6
je 0x40b1c1
cmp eax, 8
je 0x40b1c1
mov eax, 0x114
call fcn.005af400
add eax, 0x1a9
mov dword [ebp + 0x5538], eax
push 0x42
lea eax, [ebp + 0x55a8]
push ebx
push eax
call fcn.00626020
add esp, 0xc
mov edi, ebp
call fcn.0041bee0
mov ecx, dword [ebp + 0x144]
mov dword [ecx + 0x24], eax
mov esi, dword [ebp + 0x144]
call fcn.00489cd0
xor edi, edi
mov edx, dword [ebp + 0x144]
lea esi, [ebx + edx + 0x28]
mov eax, ebp
mov dword [esi + 0x2c], edi
call fcn.0041c210
add ebx, 0x50
add edi, 1
cmp ebx, 0x320
mov dword [esi + 8], eax
mov dword [esi + 0xc], 8
mov dword [esi + 0x34], 0xffffffff
jl 0x40b1f0
mov ecx, dword [ebp + 0x8c]
cmp dword [ecx + 0x768], 0
je 0x40b27d
cmp dword [ecx + 0x7f8], 0x12
jne 0x40b27d
mov esi, dword [ebp + 0x144]
or edx, 0xffffffff
add esi, 0x28
lea edi, [edx + 2]
call fcn.00489b50
mov esi, dword [ebp + 0x144]
add esi, 0x78
or edx, edx
xor edi, edi
call fcn.00489b50
mov esi, dword [ebp + 0x144]
or edx, 0xffffffff
add esi, 0xc8
lea edi, [edx + 6]
call fcn.00489b50
jmp 0x40b8e5
mov edx, dword [ecx + 0x7f8]
cmp edx, 0x2a
jne 0x40b317
mov esi, dword [ebp + 0x144]
add esi, 0x28
or edx, 0xffffffff
xor edi, edi
call fcn.00489b50
mov esi, dword [ebp + 0x144]
add esi, 0x78
or edx, edx
mov edi, 2
call fcn.00489b50
mov esi, dword [ebp + 0x144]
or edx, 0xffffffff
add esi, 0xc8
lea edi, [edx + 4]
call fcn.00489b50
mov esi, dword [ebp + 0x144]
add esi, 0x118
or edx, edx
mov edi, 7
call fcn.00489b50
mov esi, dword [ebp + 0x144]
or edx, 0xffffffff
add esi, 0x168
lea edi, [edx + 6]
call fcn.00489b50
mov esi, dword [ebp + 0x144]
add esi, 0x1b8
or edx, edx
mov edi, 6
call fcn.00489b50
jmp 0x40b8e5
cmp edx, 0x17
jne 0x40b34a
mov esi, dword [ebp + 0x144]
or edx, 0xffffffff
add esi, 0x28
lea edi, [edx + 0x3b]
call fcn.00489b50
mov esi, dword [ebp + 0x144]
add esi, 0x78
or edx, edx
mov edi, 0x3b
call fcn.00489b50
jmp 0x40b8e5
cmp edx, 0x3d
jne 0x40b394
mov esi, dword [ebp + 0x144]
or edx, 0xffffffff
add esi, 0x28
lea edi, [edx + 0x3d]
call fcn.00489b50
mov esi, dword [ebp + 0x144]
add esi, 0x78
or edx, edx
mov edi, 0x3d
call fcn.00489b50
mov esi, dword [ebp + 0x144]
or edx, 0xffffffff
add esi, 0xc8
lea edi, [edx + 0x44]
jmp 0x7cf8a9
cmp edx, 0x3e
jne 0x40b3de
mov esi, dword [ebp + 0x144]
or edx, 0xffffffff
add esi, 0x28
lea edi, [edx + 0x3d]
call fcn.00489b50
mov esi, dword [ebp + 0x144]
add esi, 0x78
or edx, edx
mov edi, 0x58
call fcn.00489b50
mov esi, dword [ebp + 0x144]
or edx, 0xffffffff
add esi, 0xc8
lea edi, [edx + 0x40]
call fcn.00489b50
jmp 0x40b8e5
cmp edx, 0x3f
jne 0x40b428
mov esi, dword [ebp + 0x144]
or edx, 0xffffffff
add esi, 0x28
lea edi, [edx + 0x3d]
call fcn.00489b50
mov esi, dword [ebp + 0x144]
add esi, 0x78
or edx, edx
mov edi, 0x3f
call fcn.00489b50
mov esi, dword [ebp + 0x144]
or edx, 0xffffffff
add esi, 0xc8
lea edi, [edx + 0x42]
call fcn.00489b50
jmp 0x40b8e5
cmp edx, 0x40
jne 0x40b472
mov esi, dword [ebp + 0x144]
or edx, 0xffffffff
add esi, 0x28
lea edi, [edx + 0x3d]
call fcn.00489b50
mov esi, dword [ebp + 0x144]
add esi, 0x78
or edx, edx
mov edi, 0x3f
call fcn.00489b50
mov esi, dword [ebp + 0x144]
or edx, 0xffffffff
add esi, 0xc8
lea edi, [edx + 0x41]
call fcn.00489b50
jmp 0x40b8e5
cmp edx, 0x41
jne 0x40b4d4
mov esi, dword [ebp + 0x144]
or edx, 0xffffffff
add esi, 0x28
lea edi, [edx + 0x3d]
call fcn.00489b50
mov esi, dword [ebp + 0x144]
add esi, 0x78
or edx, edx
mov edi, 0x3f
call fcn.00489b50
mov esi, dword [ebp + 0x144]
or edx, 0xffffffff
add esi, 0xc8
lea edi, [edx + 0x43]
call fcn.00489b50
mov esi, dword [ebp + 0x144]
add esi, 0x118
or edx, edx
mov edi, 0x4c
call fcn.00489b50
jmp 0x40b8e5
cmp edx, 0x42
jne 0x40b536
mov esi, dword [ebp + 0x144]
or edx, 0xffffffff
add esi, 0x28
lea edi, [edx + 0x3d]
call fcn.00489b50
mov esi, dword [ebp + 0x144]
add esi, 0x78
or edx, edx
mov edi, 0x3e
call fcn.00489b50
mov esi, dword [ebp + 0x144]
or edx, 0xffffffff
add esi, 0xc8
lea edi, [edx + 0x40]
call fcn.00489b50
mov esi, dword [ebp + 0x144]
add esi, 0x118
or edx, edx
mov edi, 0x49
call fcn.00489b50
jmp 0x40b8e5
cmp edx, 0x43
jne 0x40b598
mov esi, dword [ebp + 0x144]
or edx, 0xffffffff
add esi, 0x28
lea edi, [edx + 0x3d]
call fcn.00489b50
mov esi, dword [ebp + 0x144]
add esi, 0x78
or edx, edx
mov edi, 0x3e
call fcn.00489b50
mov esi, dword [ebp + 0x144]
or edx, 0xffffffff
add esi, 0xc8
lea edi, [edx + 0x40]
call fcn.00489b50
mov esi, dword [ebp + 0x144]
add esi, 0x118
or edx, edx
mov edi, 0x48
call fcn.00489b50
jmp 0x40b8e5
cmp edx, 0x44
jne 0x40b62d
mov esi, dword [ebp + 0x144]
or edx, 0xffffffff
add esi, 0x28
lea edi, [edx + 0x4b]
jmp 0x7cf8b8
cmp edx, 0x45
jne 0x40b6f1
mov esi, dword [ebp + 0x144]
or edx, 0xffffffff
add esi, 0x28
lea edi, [edx + 0x4b]
jmp 0x7cf8c7
cmp edx, 0x46
jne 0x40b7cc
mov esi, dword [ebp + 0x144]
or edx, 0xffffffff
add esi, 0x28
lea edi, [edx + 0x4b]
jmp 0x7cf8d6
call fcn.004538f0
test al, al
je 0x40b7ee
mov esi, dword [ebp + 0x144]
or edx, 0xffffffff
add esi, 0x28
lea edi, [edx + 3]
call fcn.00489b50
jmp 0x40b8e5
call fcn.00453890
test al, al
je 0x40b840
test edx, edx
jne 0x40b840
mov esi, dword [ebp + 0x144]
or edx, 0xffffffff
add esi, 0x28
lea edi, [edx + 5]
call fcn.00489b50
mov esi, dword [ebp + 0x144]
add esi, 0x78
or edx, edx
mov edi, 0xb
call fcn.00489b50
mov esi, dword [ebp + 0x144]
or edx, 0xffffffff
add esi, 0xc8
lea edi, [edx + 3]
call fcn.00489b50
jmp 0x40b8e5
call fcn.00453890
test al, al
je 0x40b88f
test edx, edx
je 0x40b88f
mov esi, dword [ebp + 0x144]
or edx, 0xffffffff
add esi, 0x28
lea edi, [edx + 5]
call fcn.00489b50
mov esi, dword [ebp + 0x144]
add esi, 0x78
or edx, edx
mov edi, 0xb
call fcn.00489b50
mov esi, dword [ebp + 0x144]
or edx, 0xffffffff
add esi, 0xc8
lea edi, [edx + 0xf]
call fcn.00489b50
jmp 0x40b8e5
mov edi, ebp
call fcn.0040bd30
test al, al
jne 0x40b8e5
mov eax, ebp
call fcn.0041be50
test al, al
jne 0x40b8e5
call fcn.0041bee0
mov ecx, dword [ebp + 0x144]
mov dword [ecx + 0x24], eax
mov edx, dword [ebp + 0x144]
xor edi, edi
cmp dword [edx + 0x24], edi
jle 0x40b8e5
xor ebx, ebx
mov eax, dword [ebp + 0x144]
lea esi, [ebx + eax + 0x28]
or edx, 0xffffffff
call fcn.00489b50
mov ecx, dword [ebp + 0x144]
add edi, 1
add ebx, 0x50
cmp edi, dword [ecx + 0x24]
jl 0x40b8c2
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x28]
call eax
mov eax, dword [ebp + 0x8c]
mov byte [ebp + 0x164], 0
mov dword [ebp + 0x5578], 0
cmp dword [eax + 0x768], 0
je 0x40b932
mov ecx, dword [eax + 0x7f8]
cmp ecx, 0x2f
je 0x40b9aa
test ecx, ecx
jne 0x40b932
mov ecx, dword [eax + 0x82c]
cmp dword [ecx + 0x24], 0x28
je 0x40b9aa
mov eax, dword [eax + 0x7f8]
cmp eax, 0x15
je 0x40b9aa
cmp dword [ebp + 0x554c], 3
jne 0x40b9aa
cmp eax, 0x29
jne 0x40b955
mov dword [esp + 0x14], 6
jmp 0x40b98a
test eax, eax
je 0x40b963
mov dword [esp + 0x14], 5
jmp 0x40b98a
mov eax, dword [ebp + 0x5550]
cmp eax, 0x1f
je 0x40b94b
cmp eax, 0x20
jl 0x40b978
cmp eax, 0x24
jle 0x40b959
cmp eax, 0x25
jl 0x40b98a
cmp eax, 0x28
jg 0x40b98a
mov dword [esp + 0x14], 4
fild dword [esp + 0x14]
mov dword [ebp + 0x5d4], 0xc8
fmul qword [0x679820]
fsubr qword [0x679fb8]
fstp dword [ebp + 0x5d0]
mov edi, dword [ebp + 0x160]
call fcn.0041f380
pop edi
pop esi
pop ebp
pop ebx
ret 4