Function at 0x7906b3
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x28
cmp dword [ebp + 0x10], 3
jne 0x790705
push 0x200
push 0
push 0x45000
call fcn.00794efc
push 0x34814e
push 0x451e0
call fcn.00794ffc
push 0x348155
push 0x451e8
call fcn.00794ffc
mov ebx, 1
add esp, 0x1c
mov byte [0x4ca30], 0x22
jmp 0x790b5a
cmp dword [ebp + 0x10], 2
jne 0x790767
xor ebx, ebx
mov esi, 0x45000
mov edi, 0x45200
jmp 0x79075c
cmp al, 0x40
jle 0x790747
cmp dword [ebp + 8], 0
je 0x790735
push 0
push esi
push dword [ebp + 8]
call fcn.0079691e
add esp, 0xc
test eax, eax
jg 0x790747
push edi
push esi
push 0x34815c
push 0
inc ebx
call fcn.00794ffc
add esp, 0x10
add esi, 8
add edi, 0x200
cmp esi, 0x451e0
je 0x790b5a
mov al, byte [esi]
test al, al
jne 0x790719
jmp 0x790b5a
lea eax, [ebp - 0x25]
push 9
push 0x3484c0
push eax
call fcn.00794e4f
mov eax, dword [ebp + 8]
mov dword [ebp - 0x10], eax
add esp, 0xc
cmp byte [eax], 0x25
jne 0x790789
inc eax
mov dword [ebp - 0x10], eax
mov ecx, 1
jmp 0x79080f
cmp dl, 0x5e
je 0x79081d
cmp word [eax], 0x7e3a
jne 0x790801
add eax, 2
push 0
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0079499d
add esp, 0xc
mov dword [ebp - 0x34], 0
test eax, eax
je 0x7907c9
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x30], 0x200
cmp byte [eax], 0x2c
jne 0x79082b
inc eax
push 0
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0079499d
add esp, 0xc
mov dword [ebp - 0x30], 0
test eax, eax
je 0x79082b
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x30], eax
jmp 0x79082b
inc eax
mov byte [ebp + ecx - 0x26], dl
inc ecx
mov dword [ebp - 0x10], eax
cmp ecx, 0xa
je 0x79081d
mov eax, dword [ebp - 0x10]
mov dl, byte [eax]
cmp dl, 0x2d
ja 0x790790
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0x200
cmp dword [ebp + 0x10], 4
mov ecx, dword [ebp - 0x10]
jne 0x790852
mov al, byte [ecx]
cmp al, 0x5e
sete dl
cmp al, 0x25
sete al
or dl, al
je 0x790b51
mov ebx, ecx
sub ebx, dword [ebp + 8]
jmp 0x790b5a
mov al, byte [ecx]
test al, al
je 0x790872
cmp dword [ebp + 0x10], 1
jne 0x790b51
mov edx, dword [ebp + 8]
cmp byte [edx], 0x25
jne 0x790872
cmp al, 0x25
jne 0x790b51
mov al, byte [ebp - 0x25]
cmp al, 0x40
jne 0x7909bf
cmp dword [ebp + 0x10], 1
jne 0x790b51
lea eax, [ebp - 0x1c]
lea ebx, [ebp - 0x25]
push eax
lea eax, [ebp - 0x14]
push eax
mov dword [ebp - 0x10], 0x4ca40
call fcn.0047a1df
push 1
push 0x348168
push ebx
call fcn.0079691e
add esp, 0x14
test eax, eax
jne 0x7908c8
mov eax, dword [ebp - 0x14]
movsx edx, al
push edx
movsx edx, ah
shr eax, 0x10
push edx
push eax
push 0x34816e
jmp 0x7908f5
push 1
push 0x34817d
push ebx
call fcn.0079691e
add esp, 0xc
test eax, eax
jne 0x790905
mov edx, dword [ebp - 0x1c]
movsx eax, dh
push eax
mov eax, edx
shr eax, 0x10
movsx eax, al
sar edx, 0x18
push eax
push edx
push 0x348183
push dword [ebp - 0x10]
call fcn.00794ffc
add esp, 0x14
jmp 0x790a63
push 1
push 0x348192
push ebx
call fcn.0079691e
add esp, 0xc
test eax, eax
jne 0x790936
mov eax, dword [ebp - 0x14]
imul eax, dword [0x4ca20]
add eax, dword [0x46c]
and eax, 0x7fff
mov dword [0x4ca20], eax
push eax
jmp 0x7909aa
push 1
push 0x34819a
push ebx
call fcn.0079691e
add esp, 0xc
test eax, eax
jne 0x79096c
push 0
push dword [ebp - 0x10]
call fcn.0078ce85
mov ebx, dword [ebp - 0x10]
push ebx
call fcn.0079488e
add ebx, eax
push 0x359c60
push ebx
call fcn.00794ffc
jmp 0x7908fd
push 1
push 0x3481a0
push ebx
call fcn.0079691e
add esp, 0xc
test eax, eax
jne 0x79098c
mov dword [ebp - 0x10], 0x34b620
jmp 0x790a63
push 1
push 0x3481a6
push ebx
call fcn.0079691e
add esp, 0xc
test eax, eax
jne 0x790b51
push dword [0x4cb00]
push 0x347efd
push dword [ebp - 0x10]
call fcn.00794ffc
add esp, 0xc
jmp 0x790a63
cmp al, 0x3f
jne 0x7909eb
cmp byte [ebp - 0x24], 0
je 0x790a3a
lea eax, [ebp - 0x25]
push 7
push 0x3481ae
push eax
call fcn.00794cc2
add esp, 0xc
test eax, eax
je 0x790a3a
mov ebx, 0x3c
cmp byte [ebp - 0x25], 0x3f
je 0x7909ed
xor ebx, ebx
lea esi, [ebx*8 + 0x45000]
mov edi, 0xff
mov dword [ebp - 0x2c], esi
jmp 0x790a2a
lea eax, [ebp - 0x25]
push 8
push eax
push dword [ebp - 0x2c]
call fcn.00794cc2
add esp, 0xc
test eax, eax
je 0x790a36
cmp edi, 0xff
jne 0x790a22
cmp byte [esi], 0x40
jne 0x790a22
mov edi, ebx
add dword [ebp - 0x2c], 8
inc ebx
add esi, 8
cmp ebx, 0x3f
jg 0x790a44
cmp byte [esi], 0
jne 0x7909fe
jmp 0x790a44
mov edi, ebx
jmp 0x790a44
mov ebx, 0x3c
mov edi, 0x3c
mov eax, ebx
shl eax, 9
add eax, 0x45200
mov dword [ebp - 0x10], eax
cmp dword [ebp + 0x10], 1
jne 0x790ae4
cmp edi, ebx
jne 0x790b51
cmp dword [ebp + 0xc], 0
je 0x790b55
mov ecx, dword [ebp - 0x10]
xor edx, edx
jmp 0x790a7d
inc edx
cmp edx, 0x200
je 0x790a83
cmp byte [edx + ecx], 0
jne 0x790a74
cmp dword [ebp - 0x34], 0
jns 0x790aa0
mov eax, dword [ebp - 0x34]
neg eax
cmp eax, edx
jl 0x790a9b
mov dword [ebp - 0x34], 0
jmp 0x790aa8
add dword [ebp - 0x34], edx
jmp 0x790aa8
cmp edx, dword [ebp - 0x34]
jns 0x790aa8
mov dword [ebp - 0x34], edx
sub edx, dword [ebp - 0x34]
cmp dword [ebp - 0x30], 0
jns 0x790ac6
mov eax, dword [ebp - 0x30]
neg eax
cmp eax, edx
jl 0x790ac3
mov dword [ebp - 0x30], 0
jmp 0x790ac6
add dword [ebp - 0x30], edx
mov edx, dword [ebp - 0x34]
lea eax, [ecx + edx]
push eax
push dword [ebp - 0x30]
push 0x349916
push dword [ebp + 0xc]
call fcn.00794ffc
add esp, 0x10
mov ebx, eax
jmp 0x790b5a
cmp edi, 0xff
sete dl
cmp ebx, 0x3f
setg al
test al, dl
jne 0x790b51
cmp dword [ebp + 0xc], 0
je 0x790b05
mov eax, dword [ebp + 0xc]
cmp byte [eax], 0
jne 0x790b13
cmp edi, ebx
jne 0x790b55
mov byte [ebx*8 + 0x45000], 0x40
jmp 0x790b55
cmp edi, ebx
je 0x790b33
cmp ebx, edi
jle 0x790b1d
mov ebx, edi
lea eax, [ebp - 0x25]
push 8
push eax
lea eax, [ebx*8 + 0x45000]
push eax
call fcn.00794e4f
add esp, 0xc
push dword [ebp + 0xc]
shl ebx, 9
push 0x3481b5
lea eax, [ebx + 0x45200]
push eax
call fcn.00794ffc
add esp, 0xc
mov ebx, eax
jmp 0x790b5a
xor ebx, ebx
jmp 0x790b5a
mov ebx, 1
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret