Function at 0x4841b0
Capabilities:
Parse credit card information

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov eax, dword [esp + 0x2c]
mov ebp, dword [eax + 0x30]
mov edi, dword [eax + 0xa4]
mov esi, dword [ecx]
cmp ebp, 2
jb 0x4841da
mov al, 1
cmp dword [esi + 0x150], 0
jne case.0x4849f9.1
mov bh, byte [esi + 0x11f]
mov bl, bh
add bl, 0xff
movzx eax, bl
mov dword [esp + 0x10], eax
cmp bl, 7
ja case.default.0x4841f9
mov eax, dword [esp + 0x10]
jmp dword [eax*4 + 0x557ce8]
movzx eax, word [edi + 0xc]
cmp eax, 0x12
ja case.default.0x4841f9
mov ecx, 0x76000
bt ecx, eax
jae case.default.0x4841f9
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
add ecx, 0xfffffff3
cmp cx, 6
jae case.default.0x4841f9
mov al, 1
mov edx, 0x3b
bt edx, ecx
jb case.0x4849f9.1
jmp case.default.0x4841f9
mov eax, dword [esp + 0x2c]
mov cl, byte [eax + 0x2c]
cmp cl, 0x55
je 0x484567
cmp byte [edi + 0x2c], 0x55
je 0x484567
mov al, 1
cmp cl, 0x5a
jne case.default.0x4841f9
jmp case.0x4849f9.1
mov eax, dword [esp + 0x2c]
cmp word [eax + 0xc], 0x20
jne case.default.0x4841f9
cmp word [edi + 0xc], 0xd
jne case.default.0x4841f9
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xa8]
test ecx, ecx
je case.default.0x4841f9
mov al, 1
cmp word [ecx + 0xc], 0xd
jne case.default.0x4841f9
jmp case.0x4849f9.1
mov eax, dword [esp + 0x2c]
movzx eax, word [eax + 0xc]
mov word [esp + 4], ax
cmp ax, 0xd
jne 0x4842dd
cmp word [edi + 0xc], 0x20
jne 0x4842dd
mov edx, dword [edi + 0xa4]
test edx, edx
je 0x4842dd
mov al, 1
cmp word [edx + 0xc], 0xd
je case.0x4849f9.1
cmp byte [edi + 0x2c], 0x13
movzx eax, word [edi + 0xc]
jne 0x4843d2
cmp ax, 0x17
jne case.default.0x4841f9
mov eax, dword [esp + 0x28]
cmp dword [eax + 0x18], 0
jne 0x4843dc
mov eax, dword [edi + 0xa4]
test eax, eax
je 0x4843dc
cmp word [eax + 0xc], 0x3f
jne 0x4843dc
mov eax, dword [esp + 0x28]
mov edx, dword [eax]
mov eax, dword [ecx + 4]
mov dword [esp + 0xc], edx
movzx ecx, word [edx + 0xc]
cmp cx, 5
je 0x484372
mov edx, dword [eax + 0x54]
mov dword [esp + 8], edx
test edx, edx
je 0x484361
xor edx, edx
cmp cx, 1
je 0x48435b
lea edx, [ecx - 7]
cmp dx, 0xc
mov edx, 0
jb 0x48435b
mov edx, dword [esp + 0xc]
mov edx, dword [edx + 8]
cmp edx, dword [esp + 8]
je 0x484372
movzx edx, cx
cmp edx, 0x84
je 0x484372
cmp cx, 0x50
jne 0x4843dc
mov edx, dword [eax + 0x60]
mov dword [esp + 8], edx
mov eax, dword [eax + 0x78]
test eax, eax
je 0x4843a1
xor edx, edx
cmp cx, 1
je 0x48439d
lea edx, [ecx - 7]
cmp dx, 0xc
mov edx, 0
jb 0x48439d
mov edx, dword [esp + 0xc]
mov edx, dword [edx + 8]
cmp edx, eax
je 0x4843dc
mov al, 1
cmp dword [esp + 8], 0
je case.0x4849f9.1
xor edx, edx
cmp cx, 1
je 0x4843c6
add ecx, 0xfffffff9
cmp cx, 0xc
jb 0x4843c6
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 8]
cmp edx, dword [esp + 8]
jne case.0x4849f9.1
jmp 0x4843dc
cmp ax, 0x17
jne case.default.0x4841f9
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x18]
test ecx, ecx
mov dword [esp + 8], ecx
je 0x484430
cmp word [esp + 4], 0x18
jne case.default.0x4841f9
mov eax, dword [edi + 0xa4]
test eax, eax
je case.default.0x48440d
cmp byte [eax + 0x2c], 0x23
jne case.default.0x48440d
movzx ecx, byte [esi + 0x23]
xor eax, eax
jmp dword [ecx*4 + 0x557d08]
mov eax, dword [esp + 8]
or eax, dword [edi + 0x60]
jne 0x484567
cmp dword [edi + 0xb0], 0
setne al
jmp case.0x4849f9.1
mov eax, dword [eax]
test eax, eax
je 0x4843eb
mov edx, eax
movzx ecx, word [edx + 0xc]
cmp cx, 4
jne 0x4847c3
mov edx, dword [edx + 0xa8]
test edx, edx
jne 0x484438
jmp 0x4847cd
cmp dword [edi + 0xb0], 0
je case.default.0x4841f9
mov dl, byte [esi + 0x21]
mov al, 1
mov ecx, edx
or cl, 2
cmp cl, 2
je case.0x4849f9.1
mov eax, dword [esp + 8]
or eax, dword [edi + 0x60]
jne 0x484567
and dl, 1
mov eax, edx
jmp case.0x4849f9.1
cmp byte [esi + 0x11d], 0
jne 0x48449f
mov eax, dword [esp + 0x28]
cmp dword [eax + 0x14], 1
je 0x484546
movzx ecx, word [edi + 0xc]
cmp cx, 0x17
je 0x4844ba
cmp byte [edi + 0x2c], 0
je 0x4844ba
cmp bh, 4
jne 0x4844e3
cmp cx, 0x15
jne 0x4844e3
mov eax, 0x3000
and eax, dword [edi + 0x28]
cmp eax, 0x1000
je 0x4844e3
mov eax, dword [edi + 0xa0]
test eax, eax
je 0x4844e3
mov edx, dword [eax + 0xa4]
test edx, edx
je 0x484546
movzx ecx, word [edx + 0xc]
jmp 0x484512
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0xa0]
test edx, edx
je 0x484546
movzx eax, word [edx + 0xc]
cmp ax, 0x17
je 0x484510
cmp byte [edx + 0x2c], 0
je 0x484510
cmp bh, 4
jne 0x484546
mov edx, edi
cmp ax, 0x15
je 0x484512
jmp 0x484546
mov edx, edi
mov al, 1
cmp cx, 0x41
je case.0x4849f9.1
cmp cx, 4
jne 0x484546
cmp byte [edx + 0x2c], 0x32
je case.0x4849f9.1
mov ecx, dword [edx + 0xa8]
test ecx, ecx
je case.0x4849f9.1
cmp dword [ecx + 0x30], 0
jne case.0x4849f9.1
mov eax, dword [esp + 0x2c]
movzx ecx, word [eax + 0xc]
cmp cx, 4
jne 0x48456e
mov eax, 0x3000
and eax, dword [edi + 0x28]
cmp eax, 0x2000
jne 0x484616
xor eax, eax
jmp case.0x4849f9.1
movzx eax, word [edi + 0xc]
mov dword [esp + 4], eax
cmp ax, 4
jne 0x4845a0
mov al, 1
cmp byte [edi + 0x2c], 0x32
je case.0x4849f9.1
mov edx, dword [edi + 0xa8]
test edx, edx
je case.0x4849f9.1
cmp dword [edx + 0x30], 0
jne case.0x4849f9.1
mov edx, dword [edi + 0x28]
mov al, 1
test dl, 0x10
jne case.0x48440d.0
mov dword [esp + 8], edx
cmp cx, 0x2f
jne 0x4845d9
cmp word [esp + 4], 0xd
jne 0x4845d9
mov edx, dword [esp + 0x2c]
mov edx, dword [edx + 0xa8]
test edx, edx
je 0x4845d9
cmp word [edx + 0xc], 0xd
je case.0x48440d.0
test byte [esp + 8], 0x40
je 0x4845f4
mov edx, dword [edi + 0xa0]
test edx, edx
je 0x4845f4
cmp dword [edx + 0x60], 0
je 0x4847e5
mov edx, dword [esp + 0x2c]
mov dl, byte [edx + 0x2c]
cmp dl, 0xf
je 0x484605
cmp dl, 0x10
jne 0x484638
cmp byte [esi + 0x51], 1
jne 0x484647
cmp byte [esi + 0x72], 0
jne 0x484647
jmp case.0x48440d.0
xor eax, eax
test ebp, ebp
je case.0x4849f9.1
cmp byte [edi + 0x2c], 0xf
je case.0x4849f9.1
mov eax, dword [esp + 0x2c]
mov al, byte [eax + 0x28]
and al, 1
jmp case.0x4849f9.1
cmp dl, 0x1b
jne 0x484647
cmp byte [esi + 0x70], 1
je case.0x48440d.0
mov byte [esp + 0xc], dl
cmp cx, 0xd
jne 0x484671
mov edx, dword [esp + 0x2c]
cmp dword [edx + 0x14], 2
jb 0x484671
mov edx, dword [esp + 0x2c]
mov edx, dword [edx + 0x10]
movzx edx, word [edx]
cmp edx, 0x2252
je 0x4848d5
cmp word [esp + 4], 0x17
jne 0x48468e
cmp bh, 6
jne 0x4846a7
mov edx, dword [esp + 0x2c]
cmp dword [edx + 0x60], 1
je case.0x48440d.0
jmp 0x4846a7
cmp word [esp + 4], 0x2e
jne 0x4846a7
mov edx, dword [edi + 0xa4]
test edx, edx
je 0x4846a7
cmp word [edx + 0xc], 0x3f
je 0x484679
cmp byte [esp + 0xc], 0x1c
je 0x48462a
mov dl, byte [esi + 0x23]
mov byte [esp + 3], dl
and dword [esp + 8], 0x3000
cmp byte [esi + 0x49], 0
je 0x484744
cmp word [esp + 4], 0x17
jne 0x4846ff
cmp dword [esp + 8], 0x1000
jne 0x4846ff
mov dl, byte [edi + 0x2c]
cmp dl, 0x13
je 0x4846ff
cmp dl, 0x36
je 0x4846ff
mov ebp, dword [edi + 0xb0]
cmp byte [esp + 3], 0
je 0x484be3
test ebp, ebp
jne 0x484be3
cmp cx, 0x17
jne 0x484744
mov edx, 0x3000
mov ebp, dword [esp + 0x2c]
and edx, dword [ebp + 0x28]
cmp edx, 0x1000
jne 0x484744
cmp byte [esp + 0xc], 0x13
je 0x484744
cmp byte [esp + 0xc], 0x36
je 0x484744
mov edx, dword [esp + 0x2c]
mov ebp, dword [edx + 0xb0]
cmp byte [esp + 3], 0
je 0x484c6f
test ebp, ebp
jne 0x484c6f
cmp word [esp + 4], 0x17
mov dh, byte [esp + 0xc]
jne 0x484770
cmp dword [esp + 8], 0x1000
jne 0x484770
mov dl, byte [edi + 0x2c]
cmp dl, 0x13
je 0x484770
cmp dl, 0x36
je 0x484770
cmp dl, 0x2f
jne 0x48498c
cmp cx, 0x17
jne 0x4847a1
cmp dh, 0x36
je 0x4847a1
mov edx, 0x3000
mov ebp, dword [esp + 0x2c]
and edx, dword [ebp + 0x28]
cmp edx, 0x1000
mov dh, byte [esp + 0xc]
jne 0x4847a1
cmp dh, 0x13
je 0x4847a1
cmp dh, 0x2f
jne 0x48498c
mov al, byte [edi + 0x2c]
cmp al, 0x2f
je 0x4848f9
cmp al, 0x36
jne 0x484943
cmp byte [esi + 0x1f], 0
jne 0x4849e1
jmp case.0x48440d.0
cmp cx, 0x56
je case.0x48440d.0
mov edx, eax
movzx ecx, word [edx + 0xc]
cmp cx, 4
jne 0x4847ff
mov edx, dword [edx + 0xa8]
test edx, edx
jne 0x4847cf
jmp 0x484823
movzx eax, cx
cmp eax, 0xa4
jne 0x4848ed
cmp byte [esi + 0x4f], 0
setne al
jmp case.0x4849f9.1
cmp cx, 0x50
jne 0x484823
mov edx, dword [edx + 0xa8]
test edx, edx
je 0x484823
movzx ecx, word [edx + 0xc]
cmp cx, 4
je 0x484805
cmp cx, 0x56
je case.0x48440d.0
mov edx, eax
movzx ecx, word [edx + 0xc]
cmp cx, 4
jne 0x48483b
mov edx, dword [edx + 0xa8]
test edx, edx
jne 0x484825
jmp 0x484864
movzx ecx, cx
cmp ecx, 0x84
jne 0x484864
mov edx, dword [edx + 0xa8]
test edx, edx
je 0x484864
movzx ecx, word [edx + 0xc]
cmp cx, 4
je 0x484846
cmp cx, 0x56
je case.0x48440d.0
movzx ecx, word [eax + 0xc]
cmp cx, 4
jne 0x48487d
mov eax, dword [eax + 0xa8]
test eax, eax
jne 0x484864
jmp 0x4843eb
movzx ecx, cx
cmp ecx, 0x84
jne 0x4843eb
mov eax, dword [eax + 0xa8]
test eax, eax
je 0x4843eb
movzx ecx, word [eax + 0xc]
cmp cx, 4
je 0x48488c
cmp cx, 0x50
jne 0x4843eb
mov eax, dword [eax + 0xa8]
test eax, eax
je 0x4843eb
movzx ecx, word [eax + 0xc]
cmp cx, 4
je 0x4848ae
cmp cx, 0x56
jne 0x4843eb
jmp case.0x48440d.0
mov eax, dword [esp + 0x2c]
mov cl, byte [eax + 0x28]
and cl, 2
shr cl, 1
test ebp, ebp
setne al
and al, cl
jmp case.0x4849f9.1
cmp byte [esi + 0x28], 2
sete al
jmp case.0x4849f9.1
mov eax, dword [edi + 0xa0]
test eax, eax
je 0x4849b9
mov eax, dword [eax + 0xa8]
test eax, eax
je 0x4849b9
movzx eax, word [eax + 0xc]
cmp ax, 0x41
je 0x484929
cmp ax, 0x16
jne 0x4849b9
mov dl, byte [esp + 3]
test dl, dl
je case.0x48440d.0
cmp dl, 2
je 0x484567
jmp 0x4849c9
add bh, 0xfd
cmp bh, 1
ja 0x4849e1
cmp al, 0x31
jne 0x4849e1
cmp dh, 0x31
je 0x4849ea
cmp cx, 0x15
je 0x4849e1
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 4]
cmp word [eax + 0xc], 0x17
je case.0x48440d.0
cmp dh, 0x4c
je case.0x48440d.0
cmp byte [esi + 0x52], 0
je 0x4849ea
jmp case.0x48440d.0
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
test ecx, ecx
je 0x484567
mov edx, ecx
movzx edi, word [edx + 0xc]
cmp di, 4
jne 0x484b48
mov edx, dword [edx + 0xa8]
test edx, edx
jne 0x48499c
jmp 0x484b58
mov dl, byte [esp + 3]
mov eax, edx
or al, 2
cmp al, 2
je case.0x48440d.0
cmp dword [edi + 0xb0], 0
setne al
cmp dl, 1
sete dl
test dl, al
jne case.0x48440d.0
cmp dh, 0x4c
je case.0x48440d.0
xor eax, eax
cmp bl, 7
ja case.0x4849f9.1
mov edx, dword [esp + 0x10]
jmp dword [edx*4 + 0x557d18]
cmp word [esp + 4], 0x15
jne 0x484567
xor eax, eax
cmp byte [esp + 0xc], 0x30
je case.0x4849f9.1
cmp cx, 0x15
je case.0x4849f9.1
mov ecx, dword [edi + 0x48]
test ecx, ecx
je case.0x4849f9.1
mov al, 1
cmp ecx, 1
ja case.0x4849f9.1
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x484567
mov eax, dword [ecx]
call dword [eax + 0x14]
test eax, eax
je 0x484567
mov eax, dword [eax + 0xa8]
test eax, eax
je 0x484567
movzx ecx, word [eax + 0xc]
cmp cx, 4
je 0x484a51
cmp byte [eax + 0x2c], 0x30
je 0x484567
or ecx, 0x20
cmp cx, 0x37
je 0x484567
jmp case.0x48440d.0
cmp cx, 0x14
je 0x484567
cmp byte [esp + 0xc], 0x44
jne 0x484567
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xa8]
test eax, eax
je 0x484567
cmp word [esp + 4], 0x48
je 0x484567
movzx ecx, word [eax + 0xc]
cmp cx, 0x3d
jne 0x484aee
mov eax, dword [eax + 0xa8]
test eax, eax
je 0x484b27
movzx ecx, word [eax + 0xc]
cmp cx, 0x48
jne 0x484aee
mov eax, dword [eax + 0xa8]
test eax, eax
je 0x484b27
mov eax, dword [eax + 0xa8]
test eax, eax
je 0x484b27
movzx ecx, word [eax + 0xc]
mov dl, byte [eax + 0x2c]
cmp cx, 0x17
jne 0x484b15
cmp dl, 0x13
je 0x484cd5
mov eax, dword [eax + 0xa8]
test eax, eax
je 0x484b15
cmp word [eax + 0xc], 0x18
je 0x484cd5
cmp cx, 0x2e
je 0x484cd5
test dl, dl
je 0x484cd5
mov eax, dword [esp + 4]
add eax, 0xffffffec
cmp ax, 0x20
jae 0x484567
mov ecx, eax
mov eax, 0x80000011
shr eax, cl
and al, 1
jmp case.0x4849f9.1
cmp di, 0x56
jne 0x484b58
cmp byte [esi + 0x40], 0
jne case.0x4849f9.1
mov edx, ecx
movzx edi, word [edx + 0xc]
cmp di, 4
jne 0x484b70
mov edx, dword [edx + 0xa8]
test edx, edx
jne 0x484b5a
jmp 0x484b9a
cmp di, 0x69
jne 0x484b9a
mov edx, dword [edx + 0xa8]
test edx, edx
je 0x484b9a
movzx edi, word [edx + 0xc]
cmp di, 4
je 0x484b76
cmp di, 0x56
jne 0x484b9a
cmp byte [esi + 0x40], 0
jne case.0x4849f9.1
mov eax, ecx
movzx edx, word [eax + 0xc]
cmp dx, 4
jne 0x484bb2
mov eax, dword [eax + 0xa8]
test eax, eax
jne 0x484b9c
jmp 0x484bc4
cmp dx, 0x7f
jne 0x484bc4
cmp byte [esi + 0x3e], 0
mov al, 1
jne case.0x4849f9.1
movzx eax, word [ecx + 0xc]
cmp ax, 4
jne 0x484c59
mov ecx, dword [ecx + 0xa8]
xor eax, eax
test ecx, ecx
jne 0x484bc4
jmp case.0x4849f9.1
cmp byte [esp + 3], 3
je 0x484c25
cmp byte [esp + 3], 2
jne case.0x48440d.0
mov edx, dword [edi + 0xa0]
test edx, edx
je case.0x48440d.0
mov edx, dword [edx + 0xa8]
test edx, edx
je case.0x48440d.0
movzx edx, word [edx + 0xc]
cmp dx, 0x41
je 0x484c25
cmp dx, 0x16
jne case.0x48440d.0
cmp ebp, 1
jne case.0x48440d.0
mov edx, dword [edi + 0xac]
mov edx, dword [edx]
mov edx, dword [edx]
test edx, edx
je 0x4846ff
test byte [edx + 0x28], 8
jne case.0x48440d.0
mov edx, dword [edx + 0xa8]
test edx, edx
jne 0x484c40
jmp 0x4846ff
cmp ax, 0x67
jne 0x484567
cmp byte [esi + 0x44], 0
setne al
jmp case.0x4849f9.1
cmp byte [esp + 3], 3
je 0x484ca5
cmp byte [esp + 3], 2
jne case.0x48440d.0
mov edx, dword [esp + 0x2c]
mov edx, dword [edx + 0xa0]
test edx, edx
je case.0x48440d.0
mov edx, dword [edx + 0xa8]
test edx, edx
je case.0x48440d.0
movzx edx, word [edx + 0xc]
cmp dx, 0x41
je 0x484ca5
cmp dx, 0x16
jne case.0x48440d.0
cmp ebp, 1
jne case.0x48440d.0
mov edx, dword [esp + 0x2c]
mov edx, dword [edx + 0xac]
mov edx, dword [edx]
mov edx, dword [edx]
test edx, edx
je 0x484744
test byte [edx + 0x28], 8
jne case.0x48440d.0
mov edx, dword [edx + 0xa8]
test edx, edx
jne 0x484cc0
jmp 0x484744
cmp word [esp + 4], 0x18
je case.0x48440d.0
cmp dword [edi + 0x44], 0
je case.0x48440d.0
cmp word [esp + 4], 0x14
je case.0x48440d.0
mov al, 1
cmp word [esp + 4], 0x33
je case.0x4849f9.1
jmp 0x484567
mov al, 1
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret 8
xor eax, eax
jmp case.0x48440d.12
mov al, 1
add esp, 0x28
pop esi
pop edi
pop ebx
pop ebp
ret 8
test dl, dl
jne 0x485406
jmp 0x4853a0
xor eax, eax
test dl, dl
je case.0x48440d.12
cmp dl, 0x13
je case.0x48440d.12
jmp 0x485406