Function at 0x581864
Capabilities:
Parse credit card information

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x1c
mov ebx, eax
mov eax, dword [ebx + 0x14]
test eax, eax
jne 0x581b04
mov eax, dword [ebx + 0x20]
mov dword [ebx + 0x1c], eax
mov edx, dword [ebx + 0x18]
cmp eax, 0x6e
je 0x58192c
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x5818b0
mov ecx, dword [ebx + 8]
cmp dword [ebx + 4], ecx
jb 0x5818b0
mov dword [ebx + 4], eax
mov eax, dword [ebx + 0x10]
mov dword [ebx + 8], eax
mov dword [ebx + 0x10], 0
mov dword [ebx + 0xc], 0
mov eax, dword [ebx + 0x28]
and edx, 0x20
je 0x5818d4
cmp eax, 1
jl 0x5818d4
cmp eax, 2
jle 0x5818ca
lea edx, [eax - 4]
cmp edx, 1
ja 0x5818d4
mov eax, ebx
call fcn.0057f424
mov eax, dword [ebx + 0x28]
mov edx, dword [ebx + 4]
mov ecx, dword [ebx + 8]
cmp edx, ecx
jb case.0x5818e3.0
cmp eax, 9
ja case.0x5818e3.0
jmp dword [eax*4 + 0x61d408]
mov di, word [edx]
lea esi, [edx + 2]
mov ebp, esi
mov dword [ebx + 4], esi
cmp eax, 9
jbe switch.0x00581924
lea eax, [edi - 0x24]
cmp ax, 0x58
jbe 0x581b34
lea esi, [esi]
mov dword [ebx + 0x20], 0x70
mov word [ebx + 0x24], di
mov eax, 1
add esp, 0x1c
pop ebx
pop esi
pop edi
pop ebp
ret
jmp dword [eax*4 + 0x61d430]
test dh, 4
je 0x58188a
mov dword [ebx + 0x20], 0x41
mov word [ebx + 0x24], 0
mov al, 1
jmp 0x58191c
mov dword [ebx + 0x20], 0x65
mov eax, dword [ebx + 0x14]
test eax, eax
jne 0x581b04
mov dword [ebx + 0x14], 7
xor eax, eax
jmp 0x58191c
mov dword [ebx + 0x20], 0x65
mov eax, dword [ebx + 0x14]
test eax, eax
jne 0x581b04
mov dword [ebx + 0x14], 9
xor eax, eax
jmp 0x58191c
mov dword [ebx + 0x20], 0x65
mov eax, 1
add esp, 0x1c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp di, 0x3d
jne case.0x581b37.1
cmp ecx, esi
jbe case.0x581b37.1
cmp word [edx + 2], 0x5d
jne case.0x581b37.1
add edx, 4
mov dword [ebx + 4], edx
mov dword [ebx + 0x28], 6
mov dword [ebx + 0x20], 0x58
mov word [ebx + 0x24], 0x3d
mov eax, 1
jmp 0x58191c
cmp di, 0x3a
jne case.0x581b37.1
cmp esi, ecx
jae case.0x581b37.1
cmp word [edx + 2], 0x5d
jne case.0x581b37.1
add edx, 4
mov dword [ebx + 4], edx
mov dword [ebx + 0x28], 6
mov dword [ebx + 0x20], 0x58
mov word [ebx + 0x24], 0x3a
mov eax, 1
jmp 0x58191c
cmp di, 0x2e
jne case.0x581b37.1
cmp ecx, esi
jbe case.0x581b37.1
cmp word [edx + 2], 0x5d
jne case.0x581b37.1
add edx, 4
mov dword [ebx + 4], edx
mov dword [ebx + 0x28], 6
mov dword [ebx + 0x20], 0x58
mov word [ebx + 0x24], 0x2e
mov eax, 1
jmp 0x58191c
cmp di, 0x5b
je 0x581f3c
ja 0x581b40
cmp di, 0x2d
jne case.0x581b37.1
cmp dword [ebx + 0x1c], 0x5b
je 0x582013
cmp ecx, esi
jbe 0x581a9b
cmp word [edx + 2], 0x5d
je 0x582013
mov dword [ebx + 0x20], 0x52
mov word [ebx + 0x24], 0x2d
mov eax, 1
jmp 0x58191c
cmp di, 0x39
jbe 0x581b10
cmp di, 0x5c
je 0x581fc2
cmp di, 0x7d
je 0x581f86
mov dword [ebx + 0x20], 0x65
mov eax, dword [ebx + 0x14]
test eax, eax
jne 0x581b04
mov dword [ebx + 0x14], 0xa
xor eax, eax
jmp 0x58191c
lea eax, [edi - 0x24]
cmp ax, 0x3a
ja case.0x581b37.1
movzx eax, ax
jmp dword [eax*4 + 0x61d458]
xor eax, eax
add esp, 0x1c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp di, 0x30
jb 0x581ec4
mov dword [ebx + 0x20], 0x64
sub edi, 0x30
mov word [ebx + 0x24], di
mov eax, 1
jmp 0x58191c
movzx eax, ax
jmp dword [eax*4 + 0x61d544]
cmp di, 0x5c
je 0x581edf
cmp di, 0x5d
jne case.0x581b37.1
cmp dword [ebx + 0x1c], 0x5b
je 0x582082
mov eax, dword [ebx + 0x18]
and eax, 1
neg eax
add eax, 2
mov dword [ebx + 0x28], eax
mov dword [ebx + 0x20], 0x5d
mov eax, 1
jmp 0x58191c
mov dword [ebx + 0x20], 0x2e
mov eax, 1
jmp 0x58191c
mov eax, dword [ebx + 0x1c]
cmp eax, 0x6e
je 0x5821e8
cmp eax, 0x28
je 0x58219c
mov dword [ebx + 0x20], 0x70
mov word [ebx + 0x24], 0x5e
mov eax, 1
jmp 0x58191c
cmp ecx, esi
jbe 0x581f1c
mov di, word [esi]
add esi, 2
mov dword [ebx + 4], esi
cmp di, 0x39
ja 0x582099
cmp di, 0x31
jb 0x582318
mov eax, dword [ebx]
or dword [eax + 8], 1
mov dword [ebx + 0x20], 0x62
sub edi, 0x30
mov word [ebx + 0x24], di
mov eax, 1
jmp 0x58191c
mov eax, dword [ebx + 0x1c]
cmp eax, 0x6e
je 0x581ffc
cmp eax, 0x28
je 0x581ffc
cmp eax, 0x5e
je 0x581ffc
mov dword [ebx + 0x20], 0x2a
mov eax, 1
jmp 0x58191c
test byte [ebx + 0x18], 0x20
jne 0x582070
cmp ecx, ebp
jbe case.0x581b37.0
sub ecx, ebp
cmp ecx, 3
jle 0x581c4b
cmp word [ebp], 0x5c
je 0x581ca1
mov dword [ebx + 0x20], 0x70
mov word [ebx + 0x24], 0x24
mov eax, 1
jmp 0x58191c
mov eax, ecx
sub eax, esi
cmp eax, 0xb
jle 0x581c75
cmp word [esi], 0x5b
je 0x5822b3
mov dword [ebx + 0x28], 6
cmp ecx, esi
jbe 0x581c8a
cmp word [esi], 0x5e
je 0x58222a
mov dword [ebx + 0x20], 0x5b
mov word [ebx + 0x24], 1
mov eax, 1
jmp 0x58191c
cmp word [ebp + 2], 0x29
jne 0x581c4b
mov eax, dword [ebx]
or dword [eax + 8], 0x100
mov dword [ebx + 0x20], 0x24
jmp 0x581c97
mov eax, dword [ebx + 0x18]
test al, 2
je 0x582549
cmp ecx, esi
jbe 0x582549
cmp word [edx + 2], 0x3f
jne 0x582549
mov eax, dword [ebx]
mov ebp, dword [eax + 8]
mov esi, ebp
or esi, 0x80
mov dword [eax + 8], esi
mov di, word [edx + 4]
lea esi, [edx + 6]
mov dword [ebx + 4], esi
cmp di, 0x23
je 0x58238f
ja 0x5821f6
cmp di, 0x21
je 0x58236f
mov dword [ebx + 0x20], 0x65
mov ebp, dword [ebx + 0x14]
test ebp, ebp
jne 0x581b04
mov dword [ebx + 0x14], 0xd
xor eax, eax
jmp 0x58191c
test byte [ebx + 0x18], 2
je 0x581d41
cmp ecx, esi
jbe 0x581d41
cmp word [edx + 2], 0x3f
je 0x58248f
mov dword [ebx + 0x20], 0x2a
mov word [ebx + 0x24], 1
mov eax, 1
jmp 0x58191c
cmp dword [ebx + 0x1c], 0x28
jne 0x581d67
mov eax, dword [ebx]
or dword [eax + 8], 0x100
mov dword [ebx + 0x20], 0x29
mov word [ebx + 0x24], 0x29
mov eax, 1
jmp 0x58191c
cmp ecx, esi
jbe 0x581f1c
test byte [ebx + 0x18], 2
je 0x58256b
mov eax, ebx
call fcn.00581438
mov esi, dword [ebx + 0x14]
test esi, esi
jne 0x58255d
cmp dword [ebx + 0x20], 0x43
jne 0x581c97
mov eax, dword [ebx + 0x24]
sub eax, 0x44
cmp ax, 0x33
jbe 0x5820d8
mov dword [ebx + 0x20], 0x65
mov dword [ebx + 0x14], 0xf
xor eax, eax
jmp 0x58191c
mov eax, ecx
sub eax, esi
cmp eax, 0xb
jle 0x581de5
cmp word [edx + 2], 0x5b
je 0x5823f2
mov dword [ebx + 0x28], 6
cmp esi, ecx
jae 0x581c8a
cmp word [edx + 2], 0x5e
jne 0x581c8a
add edx, 4
mov dword [ebx + 4], edx
mov dword [ebx + 0x20], 0x5b
mov word [ebx + 0x24], 0
jmp 0x581c97
test byte [ebx + 0x18], 2
je 0x581e2c
cmp esi, ecx
jae 0x581e2c
cmp word [edx + 2], 0x3f
je 0x5824b5
mov dword [ebx + 0x20], 0x3f
mov word [ebx + 0x24], 1
mov eax, 1
jmp 0x58191c
test byte [ebx + 0x18], 2
je 0x581e58
cmp esi, ecx
jae 0x581e58
cmp word [edx + 2], 0x3f
je 0x5824db
mov dword [ebx + 0x20], 0x2b
mov word [ebx + 0x24], 1
mov eax, 1
jmp 0x58191c
mov dword [ebx + 0x20], 0x7c
mov eax, 1
jmp 0x58191c
test byte [ebx + 0x18], 0x20
jne 0x5822a1
cmp ecx, ebp
ja 0x5821b6
mov eax, dword [ebx]
or dword [eax + 8], 0x108
mov dword [ebx + 0x20], 0x70
mov word [ebx + 0x24], 0x7b
mov eax, 1
jmp 0x58191c
mov dword [ebx + 0x20], 0x5e
mov eax, 1
jmp 0x58191c
cmp di, 0x2c
jne 0x581ace
mov dword [ebx + 0x20], 0x2c
mov eax, 1
jmp 0x58191c
mov eax, dword [ebx]
mov edx, dword [eax + 8]
mov edi, edx
or edi, 0x40
mov dword [eax + 8], edi
test byte [ebx + 0x18], 2
je 0x582532
or dl, 0xc0
mov dword [eax + 8], edx
cmp ecx, esi
jbe 0x581f1c
mov eax, ebx
call fcn.00581438
mov eax, dword [ebx + 0x20]
cmp eax, 0x43
je 0x58202a
cmp eax, 0x70
je 0x581c97
mov dword [ebx + 0x20], 0x65
mov edi, dword [ebx + 0x14]
test edi, edi
jne 0x581b04
mov dword [ebx + 0x14], 5
xor eax, eax
jmp 0x58191c
cmp ecx, esi
jbe case.0x5818e3.6
mov ax, word [edx + 2]
add edx, 4
mov dword [ebx + 4], edx
cmp ax, 0x3a
je 0x582280
cmp ax, 0x3d
je 0x58225f
cmp ax, 0x2e
je 0x582247
mov dword [ebx + 4], esi
mov dword [ebx + 0x20], 0x70
mov word [ebx + 0x24], 0x5b
mov eax, 1
jmp 0x58191c
cmp eax, 4
jne 0x581ace
mov dword [ebx + 0x28], 1
test byte [ebx + 0x18], 2
je 0x581fab
cmp ecx, esi
jbe 0x581fab
cmp word [edx + 2], 0x3f
je 0x58250c
mov dword [ebx + 0x20], 0x7d
mov word [ebx + 0x24], 1
mov eax, 1
jmp 0x58191c
cmp eax, 5
jne 0x581ace
cmp ecx, esi
jbe 0x581ace
cmp word [edx + 2], 0x7d
jne 0x581ace
add edx, 4
mov dword [ebx + 4], edx
mov dword [ebx + 0x28], 2
mov dword [ebx + 0x20], 0x7d
mov al, 1
jmp 0x58191c
mov dword [ebx + 0x20], 0x70
mov word [ebx + 0x24], 0x2a
mov eax, 1
jmp 0x58191c
mov dword [ebx + 0x20], 0x70
mov word [ebx + 0x24], 0x2d
mov eax, 1
jmp 0x58191c
mov eax, dword [ebx + 0x24]
cmp ax, 0x73
je 0x582350
cmp ax, 0x77
je 0x582331
cmp ax, 0x64
jne 0x581f1c
mov eax, dword [ebx + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [ebx + 0x10], eax
mov dword [ebx + 4], 0x61db80
mov dword [ebx + 8], 0x61db92
mov eax, dword [ebx + 0x1c]
mov dword [ebx + 0x20], eax
jmp 0x58186d
mov eax, ebx
call fcn.0057f424
mov ebp, dword [ebx + 4]
mov ecx, dword [ebx + 8]
jmp 0x581c39
mov dword [ebx + 0x20], 0x70
mov word [ebx + 0x24], 0x5d
mov eax, 1
jmp 0x58191c
cmp di, 0x3e
je 0x582475
cmp di, 0x7b
je 0x582457
cmp di, 0x3c
je 0x58243d
movzx eax, di
mov dword [esp], eax
call fcn.0050c8ac
test eax, eax
je case.0x581b37.1
mov eax, dword [ebx]
or dword [eax + 8], 0x110
jmp case.0x581b37.1
movzx eax, ax
jmp dword [eax*4 + 0x61d6a8]
mov eax, dword [ebx + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [ebx + 0x10], eax
mov dword [ebx + 4], 0x61dc14
mov dword [ebx + 8], 0x61dc2c
jmp 0x582065
mov eax, dword [ebx + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [ebx + 0x10], eax
mov dword [ebx + 4], 0x61dbe6
mov dword [ebx + 8], 0x61dbfc
jmp 0x582065
mov eax, dword [ebx + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [ebx + 0x10], eax
mov dword [ebx + 4], 0x61dbb8
mov dword [ebx + 8], 0x61dbce
jmp 0x582065
mov eax, dword [ebx + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [ebx + 0x10], eax
mov dword [ebx + 4], 0x61dc2c
mov dword [ebx + 8], 0x61dc46
jmp 0x582065
mov eax, dword [ebx + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [ebx + 0x10], eax
mov dword [ebx + 4], 0x61dbfc
mov dword [ebx + 8], 0x61dc14
jmp 0x582065
mov eax, dword [ebx + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [ebx + 0x10], eax
mov dword [ebx + 4], 0x61dbce
mov dword [ebx + 8], 0x61dbe6
jmp 0x582065
mov eax, dword [ebx]
or dword [eax + 8], 0x100
mov dword [ebx + 0x20], 0x5e
mov eax, 1
jmp 0x58191c
movzx eax, word [ebp]
mov dword [esp], eax
call fcn.0050c93c
test eax, eax
je 0x581e92
mov eax, dword [ebx]
or dword [eax + 8], 4
mov dword [ebx + 0x28], 4
mov dword [ebx + 0x20], 0x7b
mov eax, 1
jmp 0x58191c
mov dword [ebx + 0x20], 0x5e
mov al, 1
jmp 0x58191c
cmp di, 0x3a
je 0x5823c4
cmp di, 0x3d
jne 0x581d0c
or ebp, 0x82
mov dword [eax + 8], ebp
mov dword [ebx + 0x20], 0x4c
mov word [ebx + 0x24], 1
mov eax, 1
jmp 0x58191c
add esi, 2
mov dword [ebx + 4], esi
mov dword [ebx + 0x20], 0x5b
mov word [ebx + 0x24], 0
mov eax, 1
jmp 0x58191c
mov dword [ebx + 0x28], 7
mov dword [ebx + 0x20], 0x49
mov eax, 1
jmp 0x58191c
mov dword [ebx + 0x28], 8
mov eax, dword [ebx]
or dword [eax + 8], 0x400
mov dword [ebx + 0x20], 0x45
mov eax, 1
jmp 0x58191c
mov dword [ebx + 0x28], 9
mov eax, dword [ebx]
or dword [eax + 8], 0x400
mov dword [ebx + 0x20], 0x43
mov eax, 1
jmp 0x58191c
mov eax, ebx
call fcn.0057f424
mov ebp, dword [ebx + 4]
mov ecx, dword [ebx + 8]
jmp 0x581e8a
cmp word [esi + 2], 0x3a
jne 0x581c75
mov ax, word [esi + 4]
cmp ax, 0x3c
je 0x5822d2
cmp ax, 0x3e
jne 0x581c75
cmp word [esi + 6], 0x3a
jne 0x581c75
cmp word [esi + 8], 0x5d
jne 0x581c75
cmp word [esi + 0xa], 0x5d
jne 0x581c75
add esi, 0xc
mov dword [ebx + 4], esi
mov edx, dword [ebx]
or dword [edx + 8], 0x80
cmp ax, 0x3c
setne al
movzx eax, al
lea eax, [eax + eax + 0x3c]
mov dword [ebx + 0x20], eax
jmp 0x581c97
cmp di, 0x28
je 0x5823db
cmp di, 0x29
jne 0x5820b7
jmp 0x581d67
mov eax, dword [ebx + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [ebx + 0x10], eax
mov dword [ebx + 4], 0x61dba4
mov dword [ebx + 8], 0x61dbb8
jmp 0x582065
mov eax, dword [ebx + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [ebx + 0x10], eax
mov dword [ebx + 4], 0x61db92
mov dword [ebx + 8], 0x61dba4
jmp 0x582065
or ebp, 0x82
mov dword [eax + 8], ebp
mov dword [ebx + 0x20], 0x4c
mov word [ebx + 0x24], 0
mov eax, 1
jmp 0x58191c
cmp ecx, esi
jbe 0x58186d
lea eax, [edx + 8]
cmp word [edx + 6], 0x29
jne 0x5823b6
jmp 0x582501
add eax, 2
cmp word [eax - 2], 0x29
je 0x582501
mov esi, eax
cmp ecx, eax
ja 0x5823a8
mov dword [ebx + 4], eax
jmp 0x58186d
mov dword [ebx + 0x20], 0x28
mov word [ebx + 0x24], 0
mov eax, 1
jmp 0x58191c
mov dword [ebx + 0x20], 0x28
mov word [ebx + 0x24], 1
mov eax, 1
jmp 0x58191c
cmp word [edx + 4], 0x3a
jne 0x581de5
mov ax, word [edx + 6]
cmp ax, 0x3c
je 0x582411
cmp ax, 0x3e
jne 0x581de5
cmp word [edx + 8], 0x3a
jne 0x581de5
cmp word [edx + 0xa], 0x5d
jne 0x581de5
cmp word [edx + 0xc], 0x5d
jne 0x581de5
add edx, 0xe
mov dword [ebx + 4], edx
jmp 0x5822f9
mov eax, dword [ebx]
or dword [eax + 8], 0x80
mov dword [ebx + 0x20], 0x3c
mov eax, 1
jmp 0x58191c
mov dword [ebx + 0x28], 5
mov eax, dword [ebx]
or dword [eax + 8], 4
mov dword [ebx + 0x20], 0x7b
mov eax, 1
jmp 0x58191c
mov eax, dword [ebx]
or dword [eax + 8], 0x80
mov dword [ebx + 0x20], 0x3e
mov eax, 1
jmp 0x58191c
add edx, 4
mov dword [ebx + 4], edx
mov eax, dword [ebx]
or dword [eax + 8], 0x80
mov dword [ebx + 0x20], 0x2a
mov word [ebx + 0x24], 0
mov eax, 1
jmp 0x58191c
add edx, 4
mov dword [ebx + 4], edx
mov eax, dword [ebx]
or dword [eax + 8], 0x80
mov dword [ebx + 0x20], 0x3f
mov word [ebx + 0x24], 0
mov eax, 1
jmp 0x58191c
add edx, 4
mov dword [ebx + 4], edx
mov eax, dword [ebx]
or dword [eax + 8], 0x80
mov dword [ebx + 0x20], 0x2b
mov word [ebx + 0x24], 0
mov eax, 1
jmp 0x58191c
add esi, 2
mov dword [ebx + 4], esi
jmp 0x58186d
add edx, 4
mov dword [ebx + 4], edx
mov eax, dword [ebx]
or dword [eax + 8], 0x80
mov dword [ebx + 0x20], 0x7d
mov word [ebx + 0x24], 0
mov eax, 1
jmp 0x58191c
mov dword [ebx + 0x20], 0x70
mov word [ebx + 0x24], 0x5c
mov eax, 1
jmp 0x58191c
mov dword [ebx + 0x20], 0x28
test al, 0x10
je 0x581c91
jmp 0x581e0c
mov dword [ebx + 0x20], 0x65
xor eax, eax
jmp 0x58191c
movzx eax, word [edx + 2]
mov dword [esp], eax
call fcn.0050c8ac
test eax, eax
je 0x582584
mov eax, dword [ebx]
or dword [eax + 8], 0x110
mov dword [ebx + 0x20], 0x70
mov eax, dword [ebx + 4]
mov dx, word [eax]
mov word [ebx + 0x24], dx
add eax, 2
mov dword [ebx + 4], eax
mov eax, 1
jmp 0x58191c