Function at 0x201332fa
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0xc
mov ecx, dword [esp + 0x10]
push ebx
push ebp
push esi
mov ebp, dword [ecx + 0x10]
mov edx, dword [ecx + 0xc]
cmp ebp, edx
push edi
mov dword [esp + 0x14], ebp
mov esi, ebp
je 0x20133b79
mov ax, word [ebp]
cmp ax, 0x7c
je 0x20133b79
movzx eax, ax
xor edi, edi
sub eax, 0x28
je 0x20133a6d
sub eax, 6
je 0x20133a2f
sub eax, 0x2d
je 0x201339ce
dec eax
push 2
pop eax
jne 0x20133535
mov bx, word [ebp + 2]
lea esi, [ebp + 2]
cmp esi, edx
jne 0x20133374
push 0x38
push edi
mov eax, ecx
push edi
push dword [eax + 4]
push dword [eax]
call fcn.20165b3e
add esp, 0x14
jmp 0x2013396b
movzx ebp, bx
cmp ebp, 0x6e
jg 0x20133548
je 0x2013399d
cmp ebp, 0x57
jg 0x201334af
je 0x201334a6
cmp ebp, 0x30
je 0x20133460
jle 0x20133577
cmp ebp, 0x39
jle 0x201333c9
cmp ebp, 0x44
je 0x201333c0
cmp ebp, 0x53
jne 0x20133577
push 0
push 0x13
jmp 0x201338e7
push 0
push 0xf
jmp 0x201338e7
add ebp, 0xffffffd0
add esi, eax
mov edi, 0x80
mov ax, word [esi]
cmp ax, di
jae 0x2013341b
mov ecx, dword [0x68132994]
movzx ebx, ax
cmp dword [ecx], 1
jle 0x201333f6
push 4
push ebx
call dword [0x68132998]
pop ecx
pop ecx
jmp 0x20133403
mov eax, dword [0x68132990]
mov eax, dword [eax]
mov al, byte [eax + ebx*2]
and eax, 4
test eax, eax
je 0x2013341b
lea eax, [ebp + ebp*4]
shl eax, 1
mov ebp, eax
sub ebp, ebx
add ebp, 0x30
inc esi
inc esi
mov ax, word [esi]
jmp 0x201333d6
cmp ebp, 9
jbe 0x2013343a
mov eax, dword [esp + 0x20]
cmp ebp, dword [eax + 0x18]
jbe 0x2013343a
mov eax, dword [eax]
test byte [eax + 0x164], 1
jne 0x2013343a
mov esi, dword [esp + 0x14]
jmp 0x2013346f
push 0
push 0x14
push dword [esp + 0x28]
dec esi
dec esi
call fcn.20132d51
mov edi, eax
test edi, edi
je 0x2013396b
dec ebp
mov byte [edi + 1], 4
mov dword [edi + 0xc], ebp
jmp 0x201339c7
mov eax, dword [ecx]
test byte [eax + 0x164], 1
jne 0x201339c7
xor ebx, ebx
inc esi
inc esi
mov ax, word [esi]
cmp ax, 0x30
jb 0x2013349f
mov ecx, 0xff
cmp ax, 0x37
ja 0x2013349f
movzx eax, ax
lea eax, [eax + ebx*8 - 0x30]
cmp eax, ecx
ja 0x2013349f
inc esi
mov ebx, eax
inc esi
mov ax, word [esi]
cmp ax, 0x30
jae 0x20133481
dec esi
dec esi
jmp 0x201338e3
push 0
push 0x11
jmp 0x201338e7
sub ebp, 0x63
je 0x201334cd
dec ebp
je 0x201334c4
sub ebp, eax
je 0x2013399d
jmp 0x20133577
push 0
push 0xe
jmp 0x201338e7
add esi, eax
mov ax, word [esi]
cmp ax, 0x80
jae 0x2013352c
mov ecx, dword [0x68132994]
movzx edi, ax
cmp dword [ecx], 1
jle 0x201334f6
push 0x103
push edi
call dword [0x68132998]
pop ecx
pop ecx
jmp 0x20133506
mov eax, dword [0x68132990]
mov eax, dword [eax]
mov ax, word [eax + edi*2]
and eax, 0x103
test eax, eax
je 0x2013352c
push edi
call fcn.2015cbe4
test eax, 0x100000
je 0x20133522
push edi
call fcn.2015cbe4
sar eax, 0x16
sub edi, eax
mov ebx, edi
xor ebx, 0x40
jmp 0x201338e3
sub esi, 4
mov ecx, dword [esp + 0x20]
mov ebp, esi
inc esi
inc esi
mov di, word [esi]
test di, di
je 0x20133919
jmp 0x201338fb
sub ebp, 0x72
je 0x2013399d
dec ebp
je 0x20133994
dec ebp
je 0x2013399d
dec ebp
je 0x201336b2
dec ebp
je 0x2013399d
dec ebp
je 0x201336a9
dec ebp
je 0x2013357b
mov ebp, esi
jmp 0x20133535
mov dword [esp + 0x14], esi
add esi, eax
mov edi, 0x80
mov ax, word [esi]
cmp ax, di
jae 0x20133685
mov ecx, dword [0x68132994]
mov ebx, dword [0x68132998]
movzx ebp, ax
cmp dword [ecx], 1
jle 0x201335ae
push edi
push ebp
call ebx
pop ecx
pop ecx
jmp 0x201335ba
mov eax, dword [0x68132990]
mov eax, dword [eax]
mov al, byte [eax + ebp*2]
and eax, edi
test eax, eax
je 0x20133685
mov eax, dword [0x68132994]
cmp dword [eax], 1
jle 0x201335d5
push 4
push ebp
call ebx
pop ecx
pop ecx
jmp 0x201335e2
mov eax, dword [0x68132990]
mov eax, dword [eax]
mov al, byte [eax + ebp*2]
and eax, 4
test eax, eax
je 0x201335ef
add ebp, 0xffffffd0
mov dword [esp + 0x10], ebp
jmp 0x201335fe
push ebp
call dword [0x68132948]
sub eax, 0x57
pop ecx
mov dword [esp + 0x10], eax
inc esi
inc esi
mov ax, word [esi]
cmp ax, di
jae 0x2013366d
mov ecx, dword [0x68132994]
movzx ebp, ax
cmp dword [ecx], 1
jle 0x2013361e
push edi
push ebp
call ebx
pop ecx
pop ecx
jmp 0x2013362a
mov eax, dword [0x68132990]
mov eax, dword [eax]
mov al, byte [eax + ebp*2]
and eax, edi
test eax, eax
je 0x2013366d
mov eax, dword [0x68132994]
shl dword [esp + 0x10], 4
cmp dword [eax], 1
jle 0x20133646
push 4
push ebp
call ebx
pop ecx
pop ecx
jmp 0x20133653
mov eax, dword [0x68132990]
mov eax, dword [eax]
mov al, byte [eax + ebp*2]
and eax, 4
test eax, eax
je 0x2013365c
lea eax, [ebp - 0x30]
jmp 0x20133667
push ebp
call dword [0x68132948]
pop ecx
sub eax, 0x57
add dword [esp + 0x10], eax
jmp 0x20133691
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x20133685
cmp eax, 0x8c
jg 0x20133685
dec esi
dec esi
jmp 0x20133691
mov esi, dword [esp + 0x14]
mov dword [esp + 0x10], 0x78
push 0
push 0x16
push dword [esp + 0x28]
call fcn.20132d51
mov edi, eax
mov ebx, dword [esp + 0x10]
jmp 0x201339bb
push 0
push 0x10
jmp 0x201338e7
mov ax, word [esi + 2]
mov edi, 0x80
cmp ax, di
jae 0x2013352f
mov ecx, dword [0x68132994]
mov ebp, dword [0x68132998]
cmp dword [ecx], 1
jle 0x201336e0
movzx eax, ax
push edi
push eax
call ebp
pop ecx
pop ecx
jmp 0x201336f0
mov ecx, dword [0x68132990]
movzx eax, ax
mov ecx, dword [ecx]
mov al, byte [ecx + eax*2]
and eax, edi
test eax, eax
je 0x2013352f
mov ax, word [esi + 4]
cmp ax, di
jae 0x2013352f
mov ecx, dword [0x68132994]
cmp dword [ecx], 1
jle 0x2013371b
movzx eax, ax
push edi
push eax
call ebp
pop ecx
pop ecx
jmp 0x2013372b
mov ecx, dword [0x68132990]
movzx eax, ax
mov ecx, dword [ecx]
mov al, byte [ecx + eax*2]
and eax, edi
test eax, eax
je 0x2013352f
mov ax, word [esi + 6]
cmp ax, di
jae 0x2013352f
mov ecx, dword [0x68132994]
cmp dword [ecx], 1
jle 0x20133756
movzx eax, ax
push edi
push eax
call ebp
pop ecx
pop ecx
jmp 0x20133766
mov ecx, dword [0x68132990]
movzx eax, ax
mov ecx, dword [ecx]
mov al, byte [ecx + eax*2]
and eax, edi
test eax, eax
je 0x2013352f
lea eax, [esi + 8]
mov dword [esp + 0x10], eax
mov ax, word [eax]
cmp ax, di
jae 0x2013352f
mov ecx, dword [0x68132994]
cmp dword [ecx], 1
jle 0x20133797
movzx eax, ax
push edi
push eax
call ebp
pop ecx
pop ecx
jmp 0x201337a7
mov ecx, dword [0x68132990]
movzx eax, ax
mov ecx, dword [ecx]
mov al, byte [ecx + eax*2]
and eax, edi
test eax, eax
je 0x2013352f
mov eax, dword [0x68132994]
cmp dword [eax], 1
jle 0x201337c6
movzx eax, word [esi + 2]
push 4
push eax
call ebp
pop ecx
pop ecx
jmp 0x201337d8
mov ecx, dword [0x68132990]
movzx eax, word [esi + 2]
mov ecx, dword [ecx]
mov al, byte [ecx + eax*2]
and eax, 4
test eax, eax
je 0x201337e5
movzx edi, word [esi + 2]
sub edi, 0x30
jmp 0x201337f6
movzx eax, word [esi + 2]
push eax
call dword [0x68132948]
mov edi, eax
pop ecx
sub edi, 0x57
mov eax, dword [0x68132994]
cmp dword [eax], 1
jle 0x2013380d
movzx eax, word [esi + 4]
push 4
push eax
call ebp
pop ecx
pop ecx
jmp 0x2013381f
mov ecx, dword [0x68132990]
movzx eax, word [esi + 4]
mov ecx, dword [ecx]
mov al, byte [ecx + eax*2]
and eax, 4
test eax, eax
je 0x2013382c
movzx ebx, word [esi + 4]
sub ebx, 0x30
jmp 0x2013383d
movzx eax, word [esi + 4]
push eax
call dword [0x68132948]
mov ebx, eax
pop ecx
sub ebx, 0x57
mov eax, dword [0x68132994]
cmp dword [eax], 1
jle 0x20133854
movzx eax, word [esi + 6]
push 4
push eax
call ebp
pop ecx
pop ecx
jmp 0x20133866
mov ecx, dword [0x68132990]
movzx eax, word [esi + 6]
mov ecx, dword [ecx]
mov al, byte [ecx + eax*2]
and eax, 4
test eax, eax
je 0x20133873
movzx esi, word [esi + 6]
sub esi, 0x30
jmp 0x20133884
movzx eax, word [esi + 6]
push eax
call dword [0x68132948]
mov esi, eax
pop ecx
sub esi, 0x57
mov eax, dword [0x68132994]
cmp dword [eax], 1
jle 0x2013389e
mov eax, dword [esp + 0x10]
push 4
movzx eax, word [eax]
push eax
call ebp
pop ecx
pop ecx
jmp 0x201338b3
mov eax, dword [esp + 0x10]
mov ecx, dword [0x68132990]
movzx eax, word [eax]
mov ecx, dword [ecx]
mov al, byte [ecx + eax*2]
and eax, 4
test eax, eax
mov eax, dword [esp + 0x10]
movzx eax, word [eax]
je 0x201338c3
sub eax, 0x30
jmp 0x201338ce
push eax
call dword [0x68132948]
pop ecx
sub eax, 0x57
shl edi, 4
add edi, ebx
shl edi, 4
add edi, esi
mov esi, dword [esp + 0x10]
shl edi, 4
add edi, eax
mov ebx, edi
push 0
push 0x16
push dword [esp + 0x28]
call fcn.20132d51
mov edi, eax
jmp 0x201339bb
mov ecx, dword [esp + 0x20]
cmp esi, dword [ecx + 0xc]
je 0x20133919
push edi
push 0x6814e520
call fcn.20162bbb
test eax, eax
jne 0x20133919
inc esi
inc esi
mov di, word [esi]
test di, di
jne 0x201338f7
mov eax, dword [esp + 0x20]
mov ebx, esi
sub ebx, ebp
sar ebx, 1
cmp esi, dword [eax + 0xc]
je 0x2013393f
cmp ebx, 1
jbe 0x2013393f
push edi
push 0x6814e53c
call fcn.20162bbb
test eax, eax
je 0x2013393f
dec esi
dec esi
dec ebx
mov ecx, 0xff
cmp ebx, ecx
jbe 0x20133950
mov ebx, ecx
lea esi, [ebp + 0x1fe]
mov eax, ebx
push ebp
dec eax
neg eax
sbb eax, eax
add eax, 0x16
push eax
push dword [esp + 0x28]
call fcn.20132d51
mov edi, eax
test edi, edi
jne 0x20133972
xor eax, eax
jmp 0x20133b86
cmp ebx, 1
mov byte [edi + 1], 4
jbe 0x20133983
mov dword [edi + 0xc], esi
jmp 0x20133b6e
mov byte [edi + 1], 6
mov ax, word [ebp]
mov word [edi + 0xc], ax
jmp 0x20133b6e
push 0
push 0x12
jmp 0x201338e7
push 0
push 0x16
push dword [esp + 0x28]
call fcn.20132d51
push ebx
push 0x6815022c
mov edi, eax
call fcn.20162bbb
mov bx, word [eax - 2]
test edi, edi
je 0x201339c7
mov word [edi + 0xc], bx
mov byte [edi + 1], 6
inc esi
inc esi
jmp 0x20133b6e
mov ebx, dword [esp + 0x20]
lea esi, [ebp + 2]
push esi
push 0xd
push ebx
call fcn.20132d51
mov edi, eax
xor edx, edx
cmp edi, edx
je 0x2013396b
mov ecx, dword [ebx + 0xc]
cmp esi, ecx
je 0x20133a06
mov ax, word [esi]
inc esi
inc esi
cmp ax, 0x5d
je 0x20133a1d
cmp ax, 0x5c
jne 0x201339e9
cmp esi, ecx
je 0x20133a06
inc esi
inc esi
jmp 0x201339e9
push ebp
push 0x37
push edx
push edx
push dword [ebx + 4]
push dword [ebx]
call fcn.20165b3e
add esp, 0x18
jmp 0x2013396b
lea eax, [esi - 2]
mov dword [edi + 0x10], edx
mov dword [edi + 0xc], eax
mov byte [edi + 1], 6
jmp 0x20133b6e
cmp word [ebp + 2], 0x2a
lea esi, [ebp + 2]
push 0xc
pop ebx
jne 0x20133a4c
inc esi
push 0x18
inc esi
pop ebx
cmp word [esi], 0x3f
jne 0x20133a4c
inc esi
push 0x26
inc esi
pop ebx
push 0
push ebx
push dword [esp + 0x28]
call fcn.20132d51
mov edi, eax
test edi, edi
je 0x20133b6e
cmp ebx, 0xc
jne 0x20133b6e
jmp 0x20133a26
or dword [esp + 0x10], 0xffffffff
cmp word [ebp + 2], 0x3f
lea esi, [ebp + 2]
push 0x29
pop edi
jne 0x20133acc
movzx eax, word [ebp + 4]
cmp eax, 0x21
je 0x20133ac2
cmp eax, 0x3a
je 0x20133ab8
cmp eax, 0x3d
jne 0x20133acc
mov dword [esp + 0x14], edi
lea esi, [ebp + 6]
mov dword [ecx + 0x10], esi
cmp word [esi], di
jne 0x20133ae1
push 0
push 0
push dword [esp + 0x28]
call fcn.20132d51
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x18], eax
jmp 0x20133b0b
mov dword [esp + 0x14], 0x27
jmp 0x20133a96
mov dword [esp + 0x14], 0x2a
jmp 0x20133a96
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x14], 0xa
mov dword [esp + 0x10], eax
inc eax
mov dword [ecx + 0x18], eax
jmp 0x20133a99
mov ebx, dword [esp + 0x20]
push ebx
call fcn.20132e87
test eax, eax
mov dword [esp + 0x18], eax
je 0x2013396b
mov esi, dword [ebx + 0x10]
cmp word [esi], di
je 0x20133b0b
push ebp
push 0x36
push 0
push 0
jmp 0x20133a0b
push dword [esp + 0x18]
mov ebp, dword [esp + 0x18]
inc esi
push ebp
push ebx
inc esi
call fcn.20132d51
mov edi, eax
test edi, edi
je 0x2013396b
mov eax, dword [esp + 0x18]
mov al, byte [eax + 1]
and al, 5
cmp ebp, 0xa
mov byte [edi + 1], al
mov eax, dword [esp + 0x10]
mov dword [edi + 0xc], eax
je 0x20133b43
cmp ebp, 0x27
jne 0x20133b6e
inc ebp
push 0
push ebp
push ebx
call fcn.20132d51
mov ebp, eax
test ebp, ebp
je 0x2013396b
push ebp
push edi
push ebx
call fcn.20132d87
test eax, eax
je 0x2013396b
mov eax, dword [esp + 0x10]
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0x20]
mov dword [eax + 0x10], esi
mov eax, edi
jmp 0x20133b86
push 0
push 0
push dword [esp + 0x28]
call fcn.20132d51
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 4