Function at 0x5833e0
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 0x583680
mov eax, dword [ebx + 0x20]
mov dword [ebx + 0x1c], eax
mov edx, dword [ebx + 0x18]
cmp eax, 0x6e
je 0x5834a8
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x58342c
mov ecx, dword [ebx + 8]
cmp dword [ebx + 4], ecx
jb 0x58342c
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 0x583450
cmp eax, 1
jl 0x583450
cmp eax, 2
jle 0x583446
lea edx, [eax - 4]
cmp edx, 1
ja 0x583450
mov eax, ebx
call fcn.00580fa0
mov eax, dword [ebx + 0x28]
mov edx, dword [ebx + 4]
mov ecx, dword [ebx + 8]
cmp edx, ecx
jb case.0x58345f.0
cmp eax, 9
ja case.0x58345f.0
jmp dword [eax*4 + 0x61f8e8]
mov di, word [edx]
lea esi, [edx + 2]
mov ebp, esi
mov dword [ebx + 4], esi
cmp eax, 9
jbe switch.0x005834a0
lea eax, [edi - 0x24]
cmp ax, 0x58
jbe 0x5836b0
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 + 0x61f910]
test dh, 4
je 0x583406
mov dword [ebx + 0x20], 0x41
mov word [ebx + 0x24], 0
mov al, 1
jmp 0x583498
mov dword [ebx + 0x20], 0x65
mov eax, dword [ebx + 0x14]
test eax, eax
jne 0x583680
mov dword [ebx + 0x14], 7
xor eax, eax
jmp 0x583498
mov dword [ebx + 0x20], 0x65
mov eax, dword [ebx + 0x14]
test eax, eax
jne 0x583680
mov dword [ebx + 0x14], 9
xor eax, eax
jmp 0x583498
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.0x5836b3.1
cmp ecx, esi
jbe case.0x5836b3.1
cmp word [edx + 2], 0x5d
jne case.0x5836b3.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 0x583498
cmp di, 0x3a
jne case.0x5836b3.1
cmp esi, ecx
jae case.0x5836b3.1
cmp word [edx + 2], 0x5d
jne case.0x5836b3.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 0x583498
cmp di, 0x2e
jne case.0x5836b3.1
cmp ecx, esi
jbe case.0x5836b3.1
cmp word [edx + 2], 0x5d
jne case.0x5836b3.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 0x583498
cmp di, 0x5b
je 0x583ab8
ja 0x5836bc
cmp di, 0x2d
jne case.0x5836b3.1
cmp dword [ebx + 0x1c], 0x5b
je 0x583b8f
cmp ecx, esi
jbe 0x583617
cmp word [edx + 2], 0x5d
je 0x583b8f
mov dword [ebx + 0x20], 0x52
mov word [ebx + 0x24], 0x2d
mov eax, 1
jmp 0x583498
cmp di, 0x39
jbe 0x58368c
cmp di, 0x5c
je 0x583b3e
cmp di, 0x7d
je 0x583b02
mov dword [ebx + 0x20], 0x65
mov eax, dword [ebx + 0x14]
test eax, eax
jne 0x583680
mov dword [ebx + 0x14], 0xa
xor eax, eax
jmp 0x583498
lea eax, [edi - 0x24]
cmp ax, 0x3a
ja case.0x5836b3.1
movzx eax, ax
jmp dword [eax*4 + 0x61f938]
xor eax, eax
add esp, 0x1c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp di, 0x30
jb 0x583a40
mov dword [ebx + 0x20], 0x64
sub edi, 0x30
mov word [ebx + 0x24], di
mov eax, 1
jmp 0x583498
movzx eax, ax
jmp dword [eax*4 + 0x61fa24]
cmp di, 0x5c
je 0x583a5b
cmp di, 0x5d
jne case.0x5836b3.1
cmp dword [ebx + 0x1c], 0x5b
je 0x583bfe
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 0x583498
mov dword [ebx + 0x20], 0x2e
mov eax, 1
jmp 0x583498
mov eax, dword [ebx + 0x1c]
cmp eax, 0x6e
je 0x583d64
cmp eax, 0x28
je 0x583d18
mov dword [ebx + 0x20], 0x70
mov word [ebx + 0x24], 0x5e
mov eax, 1
jmp 0x583498
cmp ecx, esi
jbe 0x583a98
mov di, word [esi]
add esi, 2
mov dword [ebx + 4], esi
cmp di, 0x39
ja 0x583c15
cmp di, 0x31
jb 0x583e94
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 0x583498
mov eax, dword [ebx + 0x1c]
cmp eax, 0x6e
je 0x583b78
cmp eax, 0x28
je 0x583b78
cmp eax, 0x5e
je 0x583b78
mov dword [ebx + 0x20], 0x2a
mov eax, 1
jmp 0x583498
test byte [ebx + 0x18], 0x20
jne 0x583bec
cmp ecx, ebp
jbe case.0x5836b3.0
sub ecx, ebp
cmp ecx, 3
jle 0x5837c7
cmp word [ebp], 0x5c
je 0x58381d
mov dword [ebx + 0x20], 0x70
mov word [ebx + 0x24], 0x24
mov eax, 1
jmp 0x583498
mov eax, ecx
sub eax, esi
cmp eax, 0xb
jle 0x5837f1
cmp word [esi], 0x5b
je 0x583e2f
mov dword [ebx + 0x28], 6
cmp ecx, esi
jbe 0x583806
cmp word [esi], 0x5e
je 0x583da6
mov dword [ebx + 0x20], 0x5b
mov word [ebx + 0x24], 1
mov eax, 1
jmp 0x583498
cmp word [ebp + 2], 0x29
jne 0x5837c7
mov eax, dword [ebx]
or dword [eax + 8], 0x100
mov dword [ebx + 0x20], 0x24
jmp 0x583813
mov eax, dword [ebx + 0x18]
test al, 2
je 0x5840c5
cmp ecx, esi
jbe 0x5840c5
cmp word [edx + 2], 0x3f
jne 0x5840c5
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 0x583f0b
ja 0x583d72
cmp di, 0x21
je 0x583eeb
mov dword [ebx + 0x20], 0x65
mov ebp, dword [ebx + 0x14]
test ebp, ebp
jne 0x583680
mov dword [ebx + 0x14], 0xd
xor eax, eax
jmp 0x583498
test byte [ebx + 0x18], 2
je 0x5838bd
cmp ecx, esi
jbe 0x5838bd
cmp word [edx + 2], 0x3f
je 0x58400b
mov dword [ebx + 0x20], 0x2a
mov word [ebx + 0x24], 1
mov eax, 1
jmp 0x583498
cmp dword [ebx + 0x1c], 0x28
jne 0x5838e3
mov eax, dword [ebx]
or dword [eax + 8], 0x100
mov dword [ebx + 0x20], 0x29
mov word [ebx + 0x24], 0x29
mov eax, 1
jmp 0x583498
cmp ecx, esi
jbe 0x583a98
test byte [ebx + 0x18], 2
je 0x5840e7
mov eax, ebx
call fcn.00582fb4
mov esi, dword [ebx + 0x14]
test esi, esi
jne 0x5840d9
cmp dword [ebx + 0x20], 0x43
jne 0x583813
mov eax, dword [ebx + 0x24]
sub eax, 0x44
cmp ax, 0x33
jbe 0x583c54
mov dword [ebx + 0x20], 0x65
mov dword [ebx + 0x14], 0xf
xor eax, eax
jmp 0x583498
mov eax, ecx
sub eax, esi
cmp eax, 0xb
jle 0x583961
cmp word [edx + 2], 0x5b
je 0x583f6e
mov dword [ebx + 0x28], 6
cmp esi, ecx
jae 0x583806
cmp word [edx + 2], 0x5e
jne 0x583806
add edx, 4
mov dword [ebx + 4], edx
mov dword [ebx + 0x20], 0x5b
mov word [ebx + 0x24], 0
jmp 0x583813
test byte [ebx + 0x18], 2
je 0x5839a8
cmp esi, ecx
jae 0x5839a8
cmp word [edx + 2], 0x3f
je 0x584031
mov dword [ebx + 0x20], 0x3f
mov word [ebx + 0x24], 1
mov eax, 1
jmp 0x583498
test byte [ebx + 0x18], 2
je 0x5839d4
cmp esi, ecx
jae 0x5839d4
cmp word [edx + 2], 0x3f
je 0x584057
mov dword [ebx + 0x20], 0x2b
mov word [ebx + 0x24], 1
mov eax, 1
jmp 0x583498
mov dword [ebx + 0x20], 0x7c
mov eax, 1
jmp 0x583498
test byte [ebx + 0x18], 0x20
jne 0x583e1d
cmp ecx, ebp
ja 0x583d32
mov eax, dword [ebx]
or dword [eax + 8], 0x108
mov dword [ebx + 0x20], 0x70
mov word [ebx + 0x24], 0x7b
mov eax, 1
jmp 0x583498
mov dword [ebx + 0x20], 0x5e
mov eax, 1
jmp 0x583498
cmp di, 0x2c
jne 0x58364a
mov dword [ebx + 0x20], 0x2c
mov eax, 1
jmp 0x583498
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 0x5840ae
or dl, 0xc0
mov dword [eax + 8], edx
cmp ecx, esi
jbe 0x583a98
mov eax, ebx
call fcn.00582fb4
mov eax, dword [ebx + 0x20]
cmp eax, 0x43
je 0x583ba6
cmp eax, 0x70
je 0x583813
mov dword [ebx + 0x20], 0x65
mov edi, dword [ebx + 0x14]
test edi, edi
jne 0x583680
mov dword [ebx + 0x14], 5
xor eax, eax
jmp 0x583498
cmp ecx, esi
jbe case.0x58345f.6
mov ax, word [edx + 2]
add edx, 4
mov dword [ebx + 4], edx
cmp ax, 0x3a
je 0x583dfc
cmp ax, 0x3d
je 0x583ddb
cmp ax, 0x2e
je 0x583dc3
mov dword [ebx + 4], esi
mov dword [ebx + 0x20], 0x70
mov word [ebx + 0x24], 0x5b
mov eax, 1
jmp 0x583498
cmp eax, 4
jne 0x58364a
mov dword [ebx + 0x28], 1
test byte [ebx + 0x18], 2
je 0x583b27
cmp ecx, esi
jbe 0x583b27
cmp word [edx + 2], 0x3f
je 0x584088
mov dword [ebx + 0x20], 0x7d
mov word [ebx + 0x24], 1
mov eax, 1
jmp 0x583498
cmp eax, 5
jne 0x58364a
cmp ecx, esi
jbe 0x58364a
cmp word [edx + 2], 0x7d
jne 0x58364a
add edx, 4
mov dword [ebx + 4], edx
mov dword [ebx + 0x28], 2
mov dword [ebx + 0x20], 0x7d
mov al, 1
jmp 0x583498
mov dword [ebx + 0x20], 0x70
mov word [ebx + 0x24], 0x2a
mov eax, 1
jmp 0x583498
mov dword [ebx + 0x20], 0x70
mov word [ebx + 0x24], 0x2d
mov eax, 1
jmp 0x583498
mov eax, dword [ebx + 0x24]
cmp ax, 0x73
je 0x583ecc
cmp ax, 0x77
je 0x583ead
cmp ax, 0x64
jne 0x583a98
mov eax, dword [ebx + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [ebx + 0x10], eax
mov dword [ebx + 4], 0x620060
mov dword [ebx + 8], 0x620072
mov eax, dword [ebx + 0x1c]
mov dword [ebx + 0x20], eax
jmp 0x5833e9
mov eax, ebx
call fcn.00580fa0
mov ebp, dword [ebx + 4]
mov ecx, dword [ebx + 8]
jmp 0x5837b5
mov dword [ebx + 0x20], 0x70
mov word [ebx + 0x24], 0x5d
mov eax, 1
jmp 0x583498
cmp di, 0x3e
je 0x583ff1
cmp di, 0x7b
je 0x583fd3
cmp di, 0x3c
je 0x583fb9
movzx eax, di
mov dword [esp], eax
call fcn.0050dbc4
test eax, eax
je case.0x5836b3.1
mov eax, dword [ebx]
or dword [eax + 8], 0x110
jmp case.0x5836b3.1
movzx eax, ax
jmp dword [eax*4 + 0x61fb88]
mov eax, dword [ebx + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [ebx + 0x10], eax
mov dword [ebx + 4], 0x6200f4
mov dword [ebx + 8], 0x62010c
jmp 0x583be1
mov eax, dword [ebx + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [ebx + 0x10], eax
mov dword [ebx + 4], 0x6200c6
mov dword [ebx + 8], 0x6200dc
jmp 0x583be1
mov eax, dword [ebx + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [ebx + 0x10], eax
mov dword [ebx + 4], 0x620098
mov dword [ebx + 8], 0x6200ae
jmp 0x583be1
mov eax, dword [ebx + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [ebx + 0x10], eax
mov dword [ebx + 4], 0x62010c
mov dword [ebx + 8], 0x620126
jmp 0x583be1
mov eax, dword [ebx + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [ebx + 0x10], eax
mov dword [ebx + 4], 0x6200dc
mov dword [ebx + 8], 0x6200f4
jmp 0x583be1
mov eax, dword [ebx + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [ebx + 0x10], eax
mov dword [ebx + 4], 0x6200ae
mov dword [ebx + 8], 0x6200c6
jmp 0x583be1
mov eax, dword [ebx]
or dword [eax + 8], 0x100
mov dword [ebx + 0x20], 0x5e
mov eax, 1
jmp 0x583498
movzx eax, word [ebp]
mov dword [esp], eax
call fcn.0050dc54
test eax, eax
je 0x583a0e
mov eax, dword [ebx]
or dword [eax + 8], 4
mov dword [ebx + 0x28], 4
mov dword [ebx + 0x20], 0x7b
mov eax, 1
jmp 0x583498
mov dword [ebx + 0x20], 0x5e
mov al, 1
jmp 0x583498
cmp di, 0x3a
je 0x583f40
cmp di, 0x3d
jne 0x583888
or ebp, 0x82
mov dword [eax + 8], ebp
mov dword [ebx + 0x20], 0x4c
mov word [ebx + 0x24], 1
mov eax, 1
jmp 0x583498
add esi, 2
mov dword [ebx + 4], esi
mov dword [ebx + 0x20], 0x5b
mov word [ebx + 0x24], 0
mov eax, 1
jmp 0x583498
mov dword [ebx + 0x28], 7
mov dword [ebx + 0x20], 0x49
mov eax, 1
jmp 0x583498
mov dword [ebx + 0x28], 8
mov eax, dword [ebx]
or dword [eax + 8], 0x400
mov dword [ebx + 0x20], 0x45
mov eax, 1
jmp 0x583498
mov dword [ebx + 0x28], 9
mov eax, dword [ebx]
or dword [eax + 8], 0x400
mov dword [ebx + 0x20], 0x43
mov eax, 1
jmp 0x583498
mov eax, ebx
call fcn.00580fa0
mov ebp, dword [ebx + 4]
mov ecx, dword [ebx + 8]
jmp 0x583a06
cmp word [esi + 2], 0x3a
jne 0x5837f1
mov ax, word [esi + 4]
cmp ax, 0x3c
je 0x583e4e
cmp ax, 0x3e
jne 0x5837f1
cmp word [esi + 6], 0x3a
jne 0x5837f1
cmp word [esi + 8], 0x5d
jne 0x5837f1
cmp word [esi + 0xa], 0x5d
jne 0x5837f1
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 0x583813
cmp di, 0x28
je 0x583f57
cmp di, 0x29
jne 0x583c33
jmp 0x5838e3
mov eax, dword [ebx + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [ebx + 0x10], eax
mov dword [ebx + 4], 0x620084
mov dword [ebx + 8], 0x620098
jmp 0x583be1
mov eax, dword [ebx + 4]
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [ebx + 0x10], eax
mov dword [ebx + 4], 0x620072
mov dword [ebx + 8], 0x620084
jmp 0x583be1
or ebp, 0x82
mov dword [eax + 8], ebp
mov dword [ebx + 0x20], 0x4c
mov word [ebx + 0x24], 0
mov eax, 1
jmp 0x583498
cmp ecx, esi
jbe 0x5833e9
lea eax, [edx + 8]
cmp word [edx + 6], 0x29
jne 0x583f32
jmp 0x58407d
add eax, 2
cmp word [eax - 2], 0x29
je 0x58407d
mov esi, eax
cmp ecx, eax
ja 0x583f24
mov dword [ebx + 4], eax
jmp 0x5833e9
mov dword [ebx + 0x20], 0x28
mov word [ebx + 0x24], 0
mov eax, 1
jmp 0x583498
mov dword [ebx + 0x20], 0x28
mov word [ebx + 0x24], 1
mov eax, 1
jmp 0x583498
cmp word [edx + 4], 0x3a
jne 0x583961
mov ax, word [edx + 6]
cmp ax, 0x3c
je 0x583f8d
cmp ax, 0x3e
jne 0x583961
cmp word [edx + 8], 0x3a
jne 0x583961
cmp word [edx + 0xa], 0x5d
jne 0x583961
cmp word [edx + 0xc], 0x5d
jne 0x583961
add edx, 0xe
mov dword [ebx + 4], edx
jmp 0x583e75
mov eax, dword [ebx]
or dword [eax + 8], 0x80
mov dword [ebx + 0x20], 0x3c
mov eax, 1
jmp 0x583498
mov dword [ebx + 0x28], 5
mov eax, dword [ebx]
or dword [eax + 8], 4
mov dword [ebx + 0x20], 0x7b
mov eax, 1
jmp 0x583498
mov eax, dword [ebx]
or dword [eax + 8], 0x80
mov dword [ebx + 0x20], 0x3e
mov eax, 1
jmp 0x583498
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 0x583498
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 0x583498
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 0x583498
add esi, 2
mov dword [ebx + 4], esi
jmp 0x5833e9
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 0x583498
mov dword [ebx + 0x20], 0x70
mov word [ebx + 0x24], 0x5c
mov eax, 1
jmp 0x583498
mov dword [ebx + 0x20], 0x28
test al, 0x10
je 0x58380d
jmp 0x583988
mov dword [ebx + 0x20], 0x65
xor eax, eax
jmp 0x583498
movzx eax, word [edx + 2]
mov dword [esp], eax
call fcn.0050dbc4
test eax, eax
je 0x584100
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 0x583498