Function at 0x485c80
Capabilities:
Parse credit card information

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 0xa4]
movzx esi, word [eax + 0xc]
cmp si, 0x3e
jne 0x485ca7
xor eax, eax
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
mov dword [esp], esi
mov dword [esp + 4], eax
mov eax, dword [ecx]
mov dword [esp + 0xc], eax
mov al, byte [eax + 0x11f]
cmp al, 4
mov dword [esp + 0x10], ecx
mov byte [esp + 8], al
je 0x485dcf
cmp al, 3
jne 0x485d91
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
mov ebp, dword [eax + 0x88]
mov ebx, dword [eax + 0xa4]
test ebp, ebp
je 0x485d18
mov edx, dword [edx + 0xc]
mov edi, edx
add edi, 0xfffffff9
xor ecx, ecx
mov esi, 0
cmp di, 0xc
jb 0x485d05
mov esi, dword [esp + 0x2c]
mov esi, dword [esi + 8]
cmp dx, 1
cmove esi, ecx
cmp esi, ebp
mov edx, dword [esp + 0x2c]
je 0x485f5b
test ebx, ebx
je 0x485d47
mov edi, dword [edx + 0xc]
mov esi, edx
mov edx, edi
add edx, 0xfffffff9
xor ecx, ecx
mov ebp, 0
cmp dx, 0xc
mov edx, esi
jb 0x485d38
mov ebp, dword [edx + 8]
cmp di, 1
cmove ebp, ecx
cmp ebp, ebx
je 0x485f5b
mov eax, dword [eax + 0x8c]
test eax, eax
je 0x485d7c
mov edi, dword [edx + 0xc]
mov ebp, edx
mov edx, edi
add edx, 0xfffffff9
xor esi, esi
mov ebx, 0
cmp dx, 0xc
mov edx, ebp
jb 0x485d6d
mov ebx, dword [edx + 8]
cmp di, 1
cmove ebx, esi
cmp ebx, eax
je 0x485fa6
cmp word [esp], 0x41
jne 0x485d91
mov eax, dword [esp + 4]
cmp dword [eax + 0x60], 0
je 0x486693
mov edi, dword [esp + 0x28]
movzx ebp, word [edx + 0xc]
cmp bp, 0x13
je 0x485ec7
cmp bp, 5
jne 0x485f22
mov esi, dword [edx + 0xa8]
test esi, esi
je 0x485f22
mov eax, 1
cmp byte [esi + 0x2c], 0x13
je 0x485c9d
jmp 0x485f22
mov eax, dword [ecx + 4]
mov ebx, dword [eax + 0x4c]
test ebx, ebx
je 0x485e10
mov eax, dword [edx + 0xc]
mov esi, edx
mov edx, eax
add edx, 0xfffffff9
xor ebp, ebp
mov edi, 0
cmp dx, 0xc
mov edx, esi
jb 0x485df5
mov edi, dword [edx + 8]
cmp ax, 1
cmove edi, ebp
cmp word [esp], 0x41
je 0x485e10
mov eax, 0x64
cmp edi, ebx
je 0x485c9d
mov edi, dword [esp + 4]
mov bl, byte [edi + 0x2c]
cmp bl, 0x28
je 0x486397
cmp bl, 0x4b
jne 0x485e44
mov eax, dword [edi + 0x14]
cmp eax, 2
jb 0x485e44
mov esi, edx
mov edx, dword [edi + 0x10]
movzx eax, word [edx + eax - 2]
mov edx, esi
cmp eax, 0x7b24
je 0x4860d4
mov ch, byte [edx + 0x2c]
cmp ch, 0x4b
jne 0x485e67
cmp dword [edx + 0x14], 0
je 0x485e67
mov esi, edx
mov edx, dword [edx + 0x10]
mov eax, 0x64
cmp byte [edx], 0x7d
mov edx, esi
je 0x485c9d
cmp bl, 0x13
je 0x485fb0
cmp bl, 0x4b
jne 0x485e9c
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x14]
cmp eax, 2
jb 0x485e9c
mov esi, edx
mov edx, dword [esp + 4]
mov edx, dword [edx + 0x10]
movzx eax, word [edx + eax - 2]
mov edx, esi
cmp eax, 0x7b24
je 0x485fd5
cmp word [esp], 0x17
ja 0x485eb9
movzx eax, word [esp]
mov esi, edx
mov edx, 0xa80000
bt edx, eax
mov edx, esi
jb 0x485fd5
cmp bl, 0x4a
jne 0x485d91
jmp 0x485fd5
mov eax, 1
cmp byte [esp + 8], 6
je 0x485c9d
mov eax, 0xc8
cmp word [esp], 0x14
je 0x485c9d
movzx ebx, byte [edx + 0x2c]
cmp ebx, 0x11
ja 0x485efa
mov eax, 0x20021
bt eax, ebx
jb 0x485f22
cmp bl, 0x3a
je 0x485f22
mov eax, 0x1f4
cmp bl, 0x30
jne 0x485c9d
mov eax, dword [esp]
cmp ax, 0x3f
je 0x486397
cmp ax, 0x47
je 0x485f29
jmp 0x485f65
cmp word [esp], 0x47
jne 0x485f33
mov eax, 0x1f4
jmp 0x485c9d
cmp bp, 0x19
jne 0x485f65
mov eax, 0x1f4
cmp byte [esp + 8], 6
je 0x485c9d
mov cl, byte [edx + 0x2c]
cmp cl, 0x16
je 0x485f80
cmp cl, 0x45
je 0x485f80
jmp 0x48609f
mov eax, 1
jmp 0x485c9d
mov cl, byte [edx + 0x2c]
cmp cl, 0x16
je 0x485f80
cmp cl, 0x45
je 0x485f80
movzx eax, bp
cmp eax, 0x8a
jne 0x48609f
mov eax, dword [edi]
test eax, eax
je 0x48601d
nop word [eax + eax]
movzx ecx, word [eax + 0xc]
cmp cx, 4
jne 0x486008
mov eax, dword [eax + 0xa8]
test eax, eax
jne 0x485f90
jmp 0x48601d
mov eax, 2
jmp 0x485c9d
mov eax, dword [esp]
add eax, 0xffffffed
cmp ax, 0x1b
ja 0x485d91
movzx eax, ax
mov esi, edx
mov edx, 0x8000015
bt edx, eax
mov edx, esi
jae 0x485d91
cmp ch, 0x13
je 0x486061
cmp ch, 0x4b
jne 0x486071
cmp dword [edx + 0x14], 0
je 0x486071
mov esi, edx
mov edx, dword [edx + 0x10]
mov eax, 0xc8
cmp byte [edx], 0x7d
mov edx, esi
je 0x485c9d
jmp 0x486071
cmp cx, 0x59
jne 0x48601d
mov eax, 3
test byte [edx + 0x29], 2
jne 0x485c9d
mov eax, dword [esp + 4]
cmp byte [eax + 0x2c], 0x45
mov ecx, 0x6e
mov eax, 0xc8
cmove eax, ecx
je 0x485c9d
cmp byte [esp + 0x30], 0
je 0x485c9d
mov eax, 0xc8
cmp dword [edx + 0x60], 0
jne 0x485c9d
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x17c]
jmp 0x485c9d
mov eax, 0xc8
cmp word [edx + 0xc], 0x33
je 0x485c9d
mov edi, edx
movzx esi, word [edx + 0xc]
mov eax, 0xc8
cmp esi, 0x18
ja 0x48608f
mov edx, 0x1500000
bt edx, esi
jb 0x485c9d
cmp ch, 0x49
mov edx, edi
je 0x485c9d
jmp 0x485d91
cmp cl, 0x2e
je 0x4860de
mov eax, 0xbe
cmp cl, 0x40
je 0x485c9d
cmp word [esp], 0x3f
jne 0x4860c8
mov eax, 0xa0
cmp bp, 0x17
je 0x485c9d
mov eax, dword [esp + 4]
mov bl, byte [eax + 0x2c]
cmp bl, 9
jne 0x4860e8
mov eax, 0x64
jmp 0x485c9d
mov eax, 0x6e
jmp 0x485c9d
mov edx, dword [esp]
cmp dx, 4
je 0x4861a9
mov eax, 0x1388
cmp dx, 0x67
je 0x485c9d
cmp dx, 0x7f
je 0x485c9d
mov eax, 2
cmp bl, 0xf
je 0x485c9d
mov edx, ebx
cmp bl, 0x1a
je 0x485c9d
cmp dl, 0x42
je 0x485c9d
cmp bp, 0x19
je 0x486142
cmp bp, 0x46
je 0x486142
cmp bp, 0x24
jne 0x4861b3
mov eax, ecx
add al, 0xee
cmp al, 0x1f
ja 0x486157
movzx eax, al
mov edx, 0x90000001
bt edx, eax
jb 0x4861d5
cmp cl, 0x4e
je 0x4861d5
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x9c]
mov eax, 0x96
test ecx, ecx
je 0x485c9d
mov edx, dword [ecx + 0xa4]
mov cl, byte [edx + 0x2c]
cmp cl, 0x13
je 0x48637d
cmp cl, 0x4b
jne 0x486384
cmp dword [edx + 0x14], 0
je 0x486384
mov esi, dword [edx + 0x10]
cmp byte [esi], 0x7d
jne 0x486384
jmp 0x486397
mov eax, 0x3e8
jmp 0x485c9d
cmp cl, 0x4d
jne 0x4861d5
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xa8]
test eax, eax
je 0x486324
cmp word [eax + 0xc], 0x15
jne 0x486324
mov eax, dword [edi]
test eax, eax
je 0x486207
movzx esi, word [eax + 0xc]
cmp si, 4
jne 0x4861f1
mov eax, dword [eax + 0xa8]
test eax, eax
jne 0x4861db
jmp 0x486207
cmp si, 0x59
jne 0x486207
mov eax, 4
cmp word [esp], 0x3f
je 0x485c9d
cmp cl, 0x44
je 0x485c9b
cmp word [esp], 0x3d
jne 0x486236
cmp bl, 0x3a
jne 0x4863f7
cmp byte [edi + 0x26], 0
mov ecx, 0x1f4
mov eax, 0x32
cmove eax, ecx
jmp 0x485c9d
cmp dword [edi + 0x14], 2
jne 0x486272
cmp word [esp], 0x15
jne 0x4863f7
mov eax, dword [esp + 4]
mov eax, dword [eax + 0xa4]
test eax, eax
je 0x486272
movzx ecx, word [eax + 0xc]
mov eax, 0x1f4
cmp cx, 5
je 0x485c9d
cmp cx, 0x33
je 0x485c9d
cmp word [esp], 0x15
jne 0x48628e
cmp byte [esp + 0x30], 0
je 0x48628e
mov eax, dword [esp + 0xc]
cmp byte [eax + 4], 1
jne 0x4860d4
cmp word [esp], 0x15
jne 0x4863f7
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0xa4]
test ecx, ecx
je 0x4863f7
mov edx, dword [ecx + 0xc]
mov eax, 0x3e8
mov dword [esp + 8], edx
or edx, 2
cmp dx, 0x5b
je 0x485c9d
mov edx, dword [esp + 8]
mov edi, edx
mov esi, ecx
cmp di, 4
jne 0x4862ea
mov esi, dword [esi + 0xa4]
test esi, esi
je 0x4863c9
movzx edi, word [esi + 0xc]
cmp di, 4
je 0x4862d2
movzx edx, di
cmp edx, 0x9e
jne 0x4863c9
mov edx, dword [esi + 0xa4]
test edx, edx
je 0x4863c9
movzx esi, word [edx + 0xc]
cmp si, 4
jne 0x4863ac
mov edx, dword [edx + 0xa4]
test edx, edx
jne 0x486307
jmp 0x4863c9
mov eax, dword [edi]
test eax, eax
mov edx, dword [esp + 0x2c]
je 0x486354
mov ecx, eax
cmp word [eax + 0xc], 4
jne 0x486341
mov eax, dword [ecx + 0xa8]
test eax, eax
jne 0x48632e
mov eax, 0xa
cmp byte [ecx + 0x2c], 0x3b
mov edx, dword [esp + 0x2c]
je 0x485c9d
cmp word [esp], 0x16
mov eax, 0x64
mov ecx, 0x78
cmove ecx, eax
mov eax, edx
xor edx, edx
cmp dword [eax + 0x14], 0xa
mov eax, 0x32
cmovae eax, edx
add eax, ecx
jmp 0x485c9d
cmp word [edx + 0xc], 0x33
je 0x486397
movzx edx, word [edx + 0xc]
cmp edx, 0x18
ja 0x4863a1
mov esi, 0x1500000
bt esi, edx
jae 0x4863a1
mov eax, 0x23
jmp 0x485c9d
cmp cl, 0x49
jne 0x485c9d
jmp 0x486397
cmp si, 0x5b
jne 0x4863c9
jmp 0x485c9d
mov ecx, dword [ecx + 0xa4]
test ecx, ecx
je 0x4863f7
movzx edx, word [ecx + 0xc]
mov dword [esp + 8], edx
cmp word [esp + 8], 4
je 0x4863b7
cmp word [esp + 8], 5
jne 0x4863f7
mov ecx, dword [ecx + 0xa4]
test ecx, ecx
je 0x4863f7
movzx esi, word [ecx + 0xc]
cmp si, 4
je 0x4863d9
cmp si, 0x5b
je 0x485c9d
cmp word [esp], 0x3f
jne 0x48640e
mov eax, 0x6e
cmp byte [esp + 0x30], 0
jne 0x485c9d
mov eax, 1
cmp bp, 0x18
je 0x485c9d
cmp bl, 0x13
je 0x486485
mov eax, 0x64
cmp bl, 0x4a
je 0x485c9d
cmp bl, 0x4b
jne 0x486454
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x14]
cmp eax, 2
jb 0x486454
mov ecx, dword [esp + 4]
mov ecx, dword [ecx + 0x10]
movzx eax, word [ecx + eax - 2]
cmp eax, 0x7b24
je case.0x48649c.0
cmp word [esp], 0x17
ja 0x486469
movzx eax, word [esp]
mov ecx, 0xa80000
bt ecx, eax
jb case.0x48649c.0
cmp bl, 0x1f
je 0x48650b
cmp bl, 0x52
jne 0x486515
mov eax, 0x3c
jmp 0x485c9d
mov eax, dword [esp]
add eax, 0xffffffed
cmp ax, 0x2e
mov edx, dword [esp + 0x2c]
ja case.0x48649c.1
movzx eax, ax
jmp dword [eax*4 + 0x557dc0]
mov eax, dword [esp + 0xc]
cmp byte [eax + 4], 1
jne 0x4864ce
mov eax, dword [esp + 4]
cmp dword [eax + 0x44], 2
jb 0x485c9b
mov eax, dword [esp + 0xc]
cmp byte [eax + 0x1b], 0
mov eax, 0
jne 0x485c9d
cmp word [esp], 0x17
jne 0x4864df
mov eax, dword [esp + 0xc]
cmp byte [eax + 0x7c], 0
je 0x486501
mov eax, 0x13
mov ecx, dword [esp + 4]
cmp dword [ecx + 0x44], 2
jb 0x485c9d
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x164]
jmp 0x485c9d
mov eax, 0x13
jmp 0x485c9d
mov eax, 0x32
jmp 0x485c9d
cmp word [esp], 0x41
mov edx, dword [esp + 0x2c]
je case.0x48649c.13
cmp word [esp], 0x20
jne case.0x48649c.1
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0xa4]
test ecx, ecx
je case.0x48649c.1
call fcn.00486770
mov edx, dword [esp + 0x2c]
test al, al
je case.0x48649c.1
mov eax, 0x32
mov ecx, dword [esp + 4]
cmp dword [ecx + 0x9c], 0
jne 0x485c9d
mov ecx, dword [esp + 4]
cmp dword [ecx + 0x98], 0
mov edx, dword [esp + 0x2c]
jne 0x485c9d
cmp word [edx + 0xc], 0x20
jne 0x4865a8
mov ecx, dword [esp + 4]
call fcn.00486770
mov edx, dword [esp + 0x2c]
test al, al
je 0x4865a8
mov eax, 0x19
cmp dword [edx + 0x9c], 0
jne 0x485c9d
mov edx, dword [esp + 0x2c]
cmp dword [edx + 0x98], 0
jne 0x485c9d
mov eax, dword [esp + 4]
cmp word [eax + 0xc], 0x41
mov eax, 1
je 0x485c9d
cmp word [edx + 0xc], 0x2f
jne 0x48662a
mov ecx, dword [esp + 4]
call fcn.00486770
test al, al
mov ecx, dword [esp + 0x2c]
je 0x4865f7
mov eax, 0x19
cmp dword [ecx + 0x9c], 0
jne 0x485c9d
mov ecx, dword [esp + 0x2c]
cmp dword [ecx + 0x98], 1
jne 0x485c9d
cmp word [ecx + 0xc], 0x2f
jne 0x48662a
mov eax, dword [esp + 4]
cmp word [eax + 0xc], 0x16
mov eax, 2
mov ecx, dword [esp + 0x2c]
jne 0x485c9d
cmp dword [ecx + 0x98], 1
mov eax, 2
sbb eax, 0
jmp 0x485c9d
mov eax, dword [esp + 4]
test byte [eax + 0x28], 0x40
jne 0x48669d
mov eax, 3
mov ecx, dword [esp + 4]
cmp byte [ecx + 0x2c], 0xa
je 0x485c9d
mov eax, dword [esp + 4]
movzx eax, word [eax + 0xc]
push 1
push 1
push eax
call fcn.00526e30
add esp, 0xc
test eax, eax
jne 0x486675
mov eax, dword [esp + 0x2c]
movzx eax, word [eax + 0xc]
push 1
push 1
push eax
call fcn.00526e30
add esp, 0xc
test eax, eax
je 0x486693
cmp eax, 2
jne 0x485c9d
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov eax, dword [eax + 0x160]
jmp 0x485c9d
mov eax, 3
jmp 0x485c9d
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov eax, dword [eax + 0x174]
jmp 0x485c9d