Function at 0x798c9c
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb8
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x44], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x7996fd
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0xc], eax
xor eax, eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
cmp word [eax], 0x1b
jne 0x798d41
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5a8]
cmp byte [eax + 0x228], 0
jne 0x798d41
mov dl, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4a0]
call fcn.006b41c8
push 0
xor ecx, ecx
mov edx, 0xb014
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5a8]
call fcn.00488aac
push 0
push 0
mov cl, byte [0x79970c]
xor edx, edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5a8]
call fcn.007938a0
mov eax, dword [ebp - 4]
call fcn.00798b24
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x108]
mov eax, dword [ebp - 4]
call fcn.0079a0d8
mov eax, dword [ebp - 8]
cmp word [eax], 0x7a
jne 0x798d58
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5ac]
call fcn.0077f1c0
mov eax, dword [ebp - 8]
cmp word [eax], 0xd
jne 0x798d8e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x220]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x468]
jne 0x798d8e
mov eax, dword [ebp - 8]
mov word [eax], 0
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x468]
mov eax, dword [ebp - 4]
call fcn.0079a75c
mov eax, dword [ebp - 8]
cmp word [eax], 0xd
jne 0x798dc4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x220]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x588]
jne 0x798dc4
mov eax, dword [ebp - 8]
mov word [eax], 0
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x588]
mov eax, dword [ebp - 4]
call fcn.0079a75c
mov eax, dword [ebp - 8]
cmp word [eax], 0x2d
jne 0x798df5
mov al, byte [0x79970c]
cmp al, byte [ebp + 8]
jne 0x798df5
mov eax, dword [ebp - 4]
cmp byte [eax + 0x1056], 0
jne 0x798df5
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.007a1e64
mov eax, dword [ebp - 8]
mov word [eax], 0
mov eax, dword [ebp - 8]
cmp word [eax], 0x2e
jne 0x798e2e
mov eax, dword [ebp - 4]
call fcn.00799ca0
test al, al
je 0x798e2e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x220]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x468]
je 0x798e2e
mov eax, dword [ebp - 4]
call fcn.0079984c
mov eax, dword [ebp - 8]
mov word [eax], 0
mov eax, dword [ebp - 8]
cmp word [eax], 0xd
jne 0x798e5d
mov eax, dword [ebp - 4]
call fcn.00799cd4
test al, al
je 0x798e5d
test byte [ebp + 8], 4
je 0x798e55
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.0079d394
jmp 0x798e5d
mov eax, dword [ebp - 4]
call fcn.0079d470
mov eax, dword [ebp - 8]
mov ax, word [eax]
add al, 0xcf
sub al, 9
jae 0x798eb3
test byte [ebp + 8], 4
je 0x798eb3
mov eax, dword [ebp - 4]
call fcn.00799ca0
test al, al
je 0x798eb3
lea eax, [ebp - 0x48]
mov edx, dword [ebp - 8]
mov dx, word [edx]
call fcn.00404e48
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x588]
call fcn.004878d8
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x588]
mov eax, dword [ebp - 4]
call fcn.0079a75c
mov eax, dword [ebp - 8]
mov word [eax], 0
mov eax, dword [ebp - 8]
mov ax, word [eax]
cmp al, 0x46
jne 0x798ee9
test byte [ebp + 8], 4
je 0x798ee9
mov eax, dword [ebp - 4]
call fcn.00799ca0
test al, al
je 0x798ee9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x448]
mov si, 0xffeb
call fcn.00403f18
mov eax, dword [ebp - 8]
mov word [eax], 0
mov eax, dword [ebp - 8]
mov ax, word [eax]
cmp al, 0x44
jne 0x798f1f
test byte [ebp + 8], 4
je 0x798f1f
mov eax, dword [ebp - 4]
call fcn.00799ca0
test al, al
je 0x798f1f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44c]
mov si, 0xffeb
call fcn.00403f18
mov eax, dword [ebp - 8]
mov word [eax], 0
mov eax, dword [ebp - 8]
mov ax, word [eax]
cmp al, 0x47
jne 0x798f4b
test byte [ebp + 8], 4
je 0x798f4b
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x5d0]
xor dl, 1
mov eax, dword [ebp - 4]
call fcn.00797b3c
mov eax, dword [ebp - 8]
mov word [eax], 0
test byte [ebp + 8], 4
je 0x799016
mov eax, dword [ebp - 4]
call fcn.00799cd4
test al, al
je 0x799016
mov eax, dword [ebp - 8]
mov ax, word [eax]
cmp al, 0x42
jne 0x798fa0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x410]
mov dl, byte [eax + 0x170]
xor dl, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x410]
call fcn.006b41c8
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x410]
mov eax, dword [ebp - 4]
call fcn.0079a75c
mov eax, dword [ebp - 8]
mov ax, word [eax]
cmp al, 0x49
jne 0x798fdb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x414]
mov dl, byte [eax + 0x170]
xor dl, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x414]
call fcn.006b41c8
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x414]
mov eax, dword [ebp - 4]
call fcn.0079a75c
mov eax, dword [ebp - 8]
mov ax, word [eax]
cmp al, 0x55
jne 0x799016
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x418]
mov dl, byte [eax + 0x170]
xor dl, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x418]
call fcn.006b41c8
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x418]
mov eax, dword [ebp - 4]
call fcn.0079a75c
mov eax, dword [ebp - 4]
call fcn.00799c18
test al, al
je 0x79903c
mov eax, dword [ebp - 8]
cmp word [eax], 0x2e
jne 0x79903c
test byte [ebp + 8], 1
je 0x79903c
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
call fcn.0079e238
mov eax, dword [ebp - 4]
call fcn.00799c4c
test al, al
je 0x799062
mov eax, dword [ebp - 8]
cmp word [eax], 0x2d
jne 0x799062
test byte [ebp + 8], 4
je 0x799062
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
call fcn.0079e27c
mov eax, dword [ebp - 4]
call fcn.00799c80
test al, al
je 0x799088
mov eax, dword [ebp - 8]
cmp word [eax], 0x2d
jne 0x799088
test byte [ebp + 8], 1
je 0x799088
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
call fcn.0079e454
mov eax, dword [ebp - 8]
cmp word [eax], 0x21
jne 0x7990bf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4ec]
mov eax, dword [eax + 0x20c]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
mov edx, dword [eax + 0xc]
sub edx, 0xc8
mov eax, dword [ebp - 0x38]
call fcn.004a04dc
mov eax, dword [ebp - 8]
mov word [eax], 0
mov eax, dword [ebp - 8]
cmp word [eax], 0x22
jne 0x7990f6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4ec]
mov eax, dword [eax + 0x20c]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax + 0xc]
add edx, 0xc8
mov eax, dword [ebp - 0x3c]
call fcn.004a04dc
mov eax, dword [ebp - 8]
mov word [eax], 0
cmp dword [0x80c81c], 0
jle 0x7996e7
mov eax, dword [ebp - 8]
cmp word [eax], 0x26
jne 0x799115
mov dword [ebp - 0x10], 0xffffffff
jmp 0x799149
mov eax, dword [ebp - 8]
cmp word [eax], 0x28
jne 0x799127
mov dword [ebp - 0x10], 1
jmp 0x799149
mov eax, dword [ebp - 8]
cmp word [eax], 0x25
jne 0x799139
mov dword [ebp - 0xc], 0xffffffff
jmp 0x799149
mov eax, dword [ebp - 8]
cmp word [eax], 0x27
jne 0x799149
mov dword [ebp - 0xc], 1
cmp dword [ebp - 0xc], 0
jne 0x799159
cmp dword [ebp - 0x10], 0
je 0x7996e7
test byte [ebp + 8], 4
je 0x799174
push 0
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.00799714
jmp 0x7996e7
test byte [ebp + 8], 1
je 0x79918f
push 1
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.00799714
jmp 0x7996e7
cmp dword [0x80c81c], 1
jne 0x7996e7
call fcn.00790824
push eax
call fcn.007906c8
pop edx
call fcn.00420c34
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x94]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x98]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x94]
mov edx, dword [ebp - 0x30]
add eax, dword [edx + 0x9c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x98]
mov edx, dword [ebp - 0x30]
add eax, dword [edx + 0xa0]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], 0x2710
xor eax, eax
mov dword [ebp - 0x34], eax
call fcn.007906c8
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x799535
inc eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x14], 0
call fcn.007906c8
mov edx, dword [ebp - 0x14]
call fcn.00420c34
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
cmp byte [eax + 0x60], 0
jne 0x799529
mov eax, dword [ebp - 0x30]
cmp byte [eax + 0x58], 2
je 0x799529
mov dword [ebp - 0x2c], 0x2710
cmp dword [ebp - 0xc], 0
je 0x7993b7
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x98]
mov edx, dword [ebp - 0x30]
add eax, dword [edx + 0xa0]
cmp eax, dword [ebp - 0x1c]
jge 0x799288
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x98]
mov edx, dword [ebp - 0x30]
add eax, dword [edx + 0xa0]
mov edx, dword [ebp - 0x1c]
sub edx, eax
mov dword [ebp - 0x2c], edx
jmp 0x7992e2
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x98]
cmp eax, dword [ebp - 0x24]
jle 0x7992a7
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x98]
sub eax, dword [ebp - 0x24]
mov dword [ebp - 0x2c], eax
jmp 0x7992e2
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x98]
cmp eax, dword [ebp - 0x1c]
jg 0x7992d3
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x98]
mov edx, dword [ebp - 0x30]
add eax, dword [edx + 0xa0]
cmp eax, dword [ebp - 0x24]
jl 0x7992d3
xor eax, eax
mov dword [ebp - 0x2c], eax
jmp 0x7992e2
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x98]
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x94]
cmp eax, dword [ebp - 0x18]
jg 0x7992f6
cmp dword [ebp - 0xc], 1
je 0x799313
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x94]
mov edx, dword [ebp - 0x30]
add eax, dword [edx + 0x9c]
cmp eax, dword [ebp - 0x20]
jl 0x79931a
cmp dword [ebp - 0xc], 0xffffffff
jne 0x79931a
mov dword [ebp - 0x2c], 0x2710
cmp dword [ebp - 0xc], 1
jne 0x79935c
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x94]
cmp eax, dword [ebp - 0x20]
jl 0x799345
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x94]
add eax, dword [ebp - 0x2c]
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
jmp 0x799515
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x94]
add eax, dword [ebp - 0x2c]
sub eax, dword [ebp - 0x18]
mov dword [ebp - 0x2c], eax
jmp 0x799515
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x94]
mov edx, dword [ebp - 0x30]
add eax, dword [edx + 0x9c]
cmp eax, dword [ebp - 0x18]
jg 0x799395
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x94]
mov edx, dword [ebp - 0x30]
add eax, dword [edx + 0x9c]
mov edx, dword [ebp - 0x2c]
add edx, dword [ebp - 0x18]
sub edx, eax
mov dword [ebp - 0x2c], edx
jmp 0x799515
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x94]
mov edx, dword [ebp - 0x30]
add eax, dword [edx + 0x9c]
mov edx, dword [ebp - 0x2c]
add edx, dword [ebp - 0x20]
sub edx, eax
mov dword [ebp - 0x2c], edx
jmp 0x799515
cmp dword [ebp - 0x10], 0
je 0x799515
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x94]
mov edx, dword [ebp - 0x30]
add eax, dword [edx + 0x9c]
cmp eax, dword [ebp - 0x18]
jge 0x7993f4
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x94]
mov edx, dword [ebp - 0x30]
add eax, dword [edx + 0x9c]
mov edx, dword [ebp - 0x18]
sub edx, eax
mov dword [ebp - 0x2c], edx
jmp 0x79944e
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x94]
cmp eax, dword [ebp - 0x20]
jle 0x799413
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x94]
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
jmp 0x79944e
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x94]
cmp eax, dword [ebp - 0x18]
jg 0x79943f
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x94]
mov edx, dword [ebp - 0x30]
add eax, dword [edx + 0x9c]
cmp eax, dword [ebp - 0x20]
jl 0x79943f
xor eax, eax
mov dword [ebp - 0x2c], eax
jmp 0x79944e
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x94]
sub eax, dword [ebp - 0x18]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x98]
cmp eax, dword [ebp - 0x1c]
jg 0x799462
cmp dword [ebp - 0x10], 1
je 0x79947f
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x98]
mov edx, dword [ebp - 0x30]
add eax, dword [edx + 0xa0]
cmp eax, dword [ebp - 0x24]
jl 0x799486
cmp dword [ebp - 0x10], 0xffffffff
jne 0x799486
mov dword [ebp - 0x2c], 0x2710
cmp dword [ebp - 0x10], 1
jne 0x7994c2
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x98]
cmp eax, dword [ebp - 0x24]
jl 0x7994ae
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x98]
add eax, dword [ebp - 0x2c]
sub eax, dword [ebp - 0x24]
mov dword [ebp - 0x2c], eax
jmp 0x799515
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x98]
add eax, dword [ebp - 0x2c]
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], eax
jmp 0x799515
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x98]
mov edx, dword [ebp - 0x30]
add eax, dword [edx + 0xa0]
cmp eax, dword [ebp - 0x1c]
jg 0x7994f8
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x98]
mov edx, dword [ebp - 0x30]
add eax, dword [edx + 0xa0]
mov edx, dword [ebp - 0x2c]
add edx, dword [ebp - 0x1c]
sub edx, eax
mov dword [ebp - 0x2c], edx
jmp 0x799515
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x98]
mov edx, dword [ebp - 0x30]
add eax, dword [edx + 0xa0]
mov edx, dword [ebp - 0x2c]
add edx, dword [ebp - 0x24]
sub edx, eax
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x28]
jge 0x799529
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x34], eax
inc dword [ebp - 0x14]
dec dword [ebp - 0x40]
jne 0x79921a
cmp dword [ebp - 0x34], 0
je 0x7996e7
call fcn.00790824
push eax
call fcn.007906c8
pop edx
call fcn.00420c34
mov dword [ebp - 0x30], eax
test byte [ebp + 8], 2
jne 0x799597
mov dl, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5a8]
call fcn.00791d08
mov eax, dword [ebp - 4]
call fcn.00798b24
mov dword [0x80c81c], 1
mov eax, dword [ebp - 0x34]
mov byte [eax + 0x60], 1
mov dl, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5a8]
call fcn.00791d08
jmp 0x7996df
mov ax, word [0x799710]
and ax, word [0x80c810]
mov dx, word [0x79970c]
cmp dx, ax
jne 0x7996df
mov eax, dword [ebp - 0x30]
test byte [eax + 0xcc], 0x20
jne 0x7996df
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x94]
mov edx, dword [ebp - 0x30]
add eax, dword [edx + 0x9c]
mov edx, dword [ebp - 0x34]
cmp eax, dword [edx + 0x94]
jg 0x79960a
mov eax, dword [ebp - 8]
cmp word [eax], 0x27
jne 0x79960a
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + 0x94]
mov edx, dword [ebp - 0x30]
sub eax, dword [edx + 0x9c]
mov edx, dword [ebp - 0x30]
mov dword [edx + 0x94], eax
jmp 0x7996d4
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x98]
mov edx, dword [ebp - 0x30]
add eax, dword [edx + 0xa0]
mov edx, dword [ebp - 0x34]
cmp eax, dword [edx + 0x98]
jge 0x799650
mov eax, dword [ebp - 8]
cmp word [eax], 0x28
jne 0x799650
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + 0x98]
mov edx, dword [ebp - 0x30]
sub eax, dword [edx + 0xa0]
mov edx, dword [ebp - 0x30]
mov dword [edx + 0x98], eax
jmp 0x7996d4
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + 0x94]
mov edx, dword [ebp - 0x34]
add eax, dword [edx + 0x9c]
mov edx, dword [ebp - 0x30]
cmp eax, dword [edx + 0x94]
jg 0x799693
mov eax, dword [ebp - 8]
cmp word [eax], 0x25
jne 0x799693
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + 0x94]
mov edx, dword [ebp - 0x34]
add eax, dword [edx + 0x9c]
mov edx, dword [ebp - 0x30]
mov dword [edx + 0x94], eax
jmp 0x7996d4
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + 0x98]
mov edx, dword [ebp - 0x34]
add eax, dword [edx + 0xa0]
mov edx, dword [ebp - 0x30]
cmp eax, dword [edx + 0x98]
jg 0x7996d4
mov eax, dword [ebp - 8]
cmp word [eax], 0x26
jne 0x7996d4
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + 0x98]
mov edx, dword [ebp - 0x34]
add eax, dword [edx + 0xa0]
mov edx, dword [ebp - 0x30]
mov dword [edx + 0x98], eax
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x108]
mov eax, dword [ebp - 4]
call fcn.0079a0d8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x799704
lea eax, [ebp - 0x48]
call fcn.00404c60
ret