Function at 0x49aed0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
mov bl, dl
mov edx, ecx
push esi
push edi
xor esi, esi
movzx eax, word [edx]
movsx edi, ax
mov ecx, eax
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], edi
lea eax, [edi - 1]
cmp eax, 0x1963
ja 0x49b4c2
lea ecx, [edi + edi*8]
shl ecx, 4
mov dword [ebp - 0x18], ecx
mov edi, dword [ecx + 0x818038]
movzx eax, word [ecx + 0x818034]
mov dword [ebp - 0x1c], edi
mov edi, dword [ebp - 0xc]
cmp bl, 0x43
je 0x49af21
cmp bl, 0x44
jne 0x49af35
cmp ax, 0x29
jl 0x49b4c2
cmp ax, 0x32
jg 0x49b4c2
cmp bl, 0x2a
jne 0x49af51
cmp byte [edx + 4], 0x47
je 0x49af4a
cmp byte [edx + 6], 0x47
jne 0x49b018
mov bl, 0x47
jmp 0x49b018
cmp bl, 2
jne 0x49af7a
cmp dword [ecx + 0x818038], 0x20
jne 0x49b018
cmp byte [edx + 4], 0x49
je 0x49af73
cmp byte [edx + 6], 0x49
jne 0x49b018
mov bl, 0x49
jmp 0x49b018
cmp bl, 0x2e
jne 0x49af96
cmp byte [edx + 4], 0x46
je 0x49af8f
cmp byte [edx + 6], 0x46
jne 0x49b018
mov bl, 0x46
jmp 0x49b018
cmp bl, 0x2d
jne 0x49afab
cmp byte [edx + 4], 0x45
je 0x49afa7
cmp byte [edx + 6], 0x45
jne 0x49b018
mov bl, 0x45
jmp 0x49b018
cmp bl, 0x35
jne 0x49afc0
cmp byte [edx + 4], 0x48
je 0x49afbc
cmp byte [edx + 6], 0x48
jne 0x49b018
mov bl, 0x48
jmp 0x49b018
cmp bl, 1
jne 0x49afce
movsx esi, word [ecx + 0x817ff6]
jmp 0x49b018
cmp bl, 0x16
jne 0x49afdc
movsx esi, word [ecx + 0x817ff8]
jmp 0x49b018
cmp bl, 0x17
jne 0x49afea
movsx esi, word [ecx + 0x817ffa]
jmp 0x49b018
cmp bl, 0x18
jne 0x49aff8
movsx esi, word [ecx + 0x817ffc]
jmp 0x49b018
cmp bl, 0x19
jne 0x49b006
movsx esi, word [ecx + 0x817ffe]
jmp 0x49b018
cmp bl, 0x11
jne 0x49b013
mov esi, dword [ecx + 0x818038]
jmp 0x49b018
cmp bl, 0x4e
je 0x49b055
movzx eax, bl
lea ecx, [ecx + 0x818002]
mov dword [ebp - 0x10], eax
mov edi, 0xc
mov dword [ebp - 0x14], 0x64
movsx eax, word [ecx - 2]
cmp eax, dword [ebp - 0x10]
jne 0x49b04a
movsx eax, word [ecx]
cmp bl, 0x1a
jne 0x49b048
cmp eax, 1
cmove eax, dword [ebp - 0x14]
add esi, eax
add ecx, 4
sub edi, 1
jne 0x49b030
mov edi, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
movzx ecx, ax
add eax, 0xfffff6e6
cmp ax, 0x3b
ja 0x49b16f
movzx ecx, bl
lea eax, [ecx - 0x4f]
cmp eax, 4
ja case.default.0x49b075
jmp dword [eax*4 + 0x49b4cc]
movsx eax, word [edx + 2]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, byte [edx + 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, byte [edx + 5]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, byte [edx + 6]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, byte [edx + 7]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 8]
movzx eax, bx
add eax, 0xfffff6c6
cmp ax, 0x1b
ja case.0x49b0e6.3
cmp word [edx + 2], 0
jle case.0x49b0e6.3
lea eax, [ecx - 2]
cmp eax, 0x4b
ja case.0x49b0e6.3
movzx eax, byte [eax + 0x49b4f8]
jmp dword [eax*4 + 0x49b4e0]
movzx ecx, byte [edx + 4]
lea eax, [edi + edi*2]
add ecx, 0x14
imul ecx, dword [eax*8 + 0x5e0410]
mov eax, 0x51eb851f
imul ecx
pop edi
sar edx, 5
mov esi, edx
shr esi, 0x1f
add esi, edx
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx ecx, byte [edx + 4]
lea eax, [edi + edi*2]
add ecx, 0xf
imul ecx, dword [eax*8 + 0x5e0414]
jmp 0x49b0ff
lea eax, [edi + edi*2]
mov esi, dword [eax*8 + str._default_constructor_closure]
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [edi + edi*2]
mov esi, dword [eax*8 + 0x5e041c]
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [edx + 4], 0x78
lea eax, [edi + edi*2]
mov esi, dword [eax*8 + 0x5e0424]
jb case.0x49b0e6.3
add esi, 0xa
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [ecx - 0xf8c]
cmp ax, 0x13
ja 0x49b1f3
movzx eax, bl
add eax, 0xfffffffe
cmp eax, 0x4b
ja case.0x49b18d.3
movzx eax, byte [eax + 0x49b55c]
jmp dword [eax*4 + 0x49b544]
lea eax, [edi + edi*2]
mov esi, dword [eax*8 + str.ps.1.4]
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [edi + edi*2]
mov esi, dword [eax*8 + 0x5d6f04]
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [edi + edi*2]
mov esi, dword [eax*8 + str.ps.1.3]
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [edi + edi*2]
mov esi, dword [eax*8 + 0x5d6f0c]
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [edi + edi*2]
mov esi, dword [eax*8 + 0x5d6f14]
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov al, byte [edx + 2]
mov ecx, 0xa
mov byte [ebp - 1], al
cmp al, bl
jne 0x49b213
movzx eax, byte [edx + 3]
cmp bl, 0x1a
jne 0x49b211
cmp eax, 1
cmove eax, ecx
add esi, eax
mov al, byte [edx + 4]
mov byte [ebp - 2], al
cmp al, bl
jne 0x49b22e
movzx eax, byte [edx + 5]
cmp bl, 0x1a
jne 0x49b22c
cmp eax, 1
cmove eax, ecx
add esi, eax
mov bh, byte [edx + 6]
cmp bh, bl
jne 0x49b246
movzx eax, byte [edx + 7]
cmp bl, 0x1a
jne 0x49b244
cmp eax, 1
cmove eax, ecx
add esi, eax
cmp bl, 0x31
je 0x49b25e
cmp bl, 0x32
je 0x49b25e
cmp bl, 0x33
je 0x49b25e
cmp bl, 0x34
jne 0x49b2e8
mov eax, dword [ebp - 0x18]
mov edi, 2
lea ecx, [eax + 0x818002]
nop dword [eax]
cmp word [ecx - 2], 0x36
jne 0x49b27c
movsx eax, word [ecx]
add esi, eax
cmp word [ecx + 2], 0x36
jne 0x49b289
movsx eax, word [ecx + 4]
add esi, eax
cmp word [ecx + 6], 0x36
jne 0x49b296
movsx eax, word [ecx + 8]
add esi, eax
cmp word [ecx + 0xa], 0x36
jne 0x49b2a3
movsx eax, word [ecx + 0xc]
add esi, eax
cmp word [ecx + 0xe], 0x36
jne 0x49b2b0
movsx eax, word [ecx + 0x10]
add esi, eax
cmp word [ecx + 0x12], 0x36
jne 0x49b2bd
movsx eax, word [ecx + 0x14]
add esi, eax
add ecx, 0x18
sub edi, 1
jne 0x49b270
cmp byte [ebp - 1], 0x36
jne 0x49b2d1
movzx eax, byte [edx + 3]
add esi, eax
cmp byte [ebp - 2], 0x36
jne 0x49b2dd
movzx eax, byte [edx + 5]
add esi, eax
cmp bh, 0x36
jne 0x49b2e8
movzx eax, byte [edx + 7]
add esi, eax
mov ecx, edx
call fcn.0049b5c0
xor ecx, ecx
cmp word [ebp - 8], 0x28
cmovg ecx, eax
mov edi, ecx
cmp ecx, 9
jl 0x49b30c
test dword [ebp - 0x1c], 0xf00
je 0x49b314
lea edi, [ecx + 1]
test edi, edi
je 0x49b478
cmp bl, 0x21
je 0x49b4ae
cmp bl, 0x12
je 0x49b4b9
cmp bl, 0x11
je 0x49b4b9
cmp bl, 0x15
je 0x49b4b9
cmp bl, 0x1b
je 0x49b4b9
cmp bl, 1
je 0x49b4b9
cmp bl, 0x16
je 0x49b4b9
cmp bl, 0x17
je 0x49b4b9
cmp bl, 0x18
je 0x49b4b9
cmp bl, 0x19
je 0x49b4b9
cmp bl, 0x26
je 0x49b4b9
cmp bl, 0x4e
je 0x49b4b9
cmp bl, 0x54
je 0x49b4b9
cmp bl, 0x56
je 0x49b4b9
cmp bl, 0x70
je 0x49b4b9
cmp bl, 0x57
je 0x49b4b9
cmp bl, 0x58
je 0x49b4b9
cmp bl, 0x30
je 0x49b4a6
cmp bl, 0x2f
je 0x49b4a6
cmp bl, 0x71
je 0x49b4b9
cmp bl, 0x72
je 0x49b4b9
cmp bl, 0x5b
je 0x49b4b9
cmp bl, 0x5c
je 0x49b4b9
cmp bl, 0x5d
je 0x49b4b9
cmp bl, 0x5e
je 0x49b4b9
cmp bl, 0x5f
je 0x49b4b9
cmp bl, 0x62
je 0x49b4b9
cmp bl, 0x63
je 0x49b4b9
cmp edi, 0xa
jle 0x49b461
lea eax, [edi - 0xa]
cmp edi, 0xb
jne 0x49b424
mov eax, 0xdc
jmp case.default.0x49b42c
lea ecx, [eax - 2]
cmp ecx, 3
ja case.default.0x49b42c
jmp dword [ecx*4 + 0x49b5a8]
mov eax, 0xfa
jmp case.default.0x49b42c
mov eax, 0x118
jmp case.default.0x49b42c
mov eax, pe_nt_image_headers32
jmp case.default.0x49b42c
mov eax, 0x172
imul eax, esi
lea ecx, [eax + eax*4]
mov eax, 0x10624dd3
add ecx, ecx
imul ecx
sar edx, 6
jmp 0x49b471
lea ecx, [edi + 0xa]
mov eax, 0x66666667
imul ecx, esi
imul ecx
sar edx, 2
mov esi, edx
shr esi, 0x1f
add esi, edx
cmp bl, 0x1d
jne 0x49b49c
cmp esi, 3
jl 0x49b489
mov esi, 2
jmp 0x49b48d
test esi, esi
jle 0x49b4b9
cmp edi, 9
jl 0x49b4b9
inc esi
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp bl, 0x30
je 0x49b4a6
cmp bl, 0x2f
jne 0x49b4a9
imul esi, edi
cmp bl, 0x21
jne 0x49b4b9
test esi, esi
js 0x49b4b7
cmp esi, 7
jle 0x49b4b9
xor esi, esi
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret