Function at 0x47d120
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x47d61e
cmp eax, 0x7c
je 0x47d61e
lea edi, [esi + 8]
cmp eax, 0x29
jne 0x47d164
cmp dword [esi + 0x10], 0
jne 0x47d61e
test dword [esi + 0x50], 0x10000000
je 0x47d62e
jmp 0x47d5b3
cmp eax, 0x2e
jne 0x47d1d4
push 5
lea ecx, [esi + 0x24]
call fcn.0047d6d0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x47d5fa
cmp byte [eax], 0x5c
jne 0x47d3e0
lea edx, [eax + 1]
cmp edx, ecx
je 0x47d3e0
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x47d1ae
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x47d1c9
cmp byte [ebp - 1], 0x29
je 0x47d1c9
test bl, 0x10
jne 0x47d3e0
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x47d1c9
cmp dl, 0x7d
jne 0x47d3e0
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
jmp 0x47d5fa
cmp eax, 0x5c
jne 0x47d31b
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x47d225
cmp byte [eax], 0x5c
jne 0x47d222
lea edx, [eax + 1]
cmp edx, ecx
je 0x47d222
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x47d20c
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x47d21f
cmp byte [ebp - 1], 0x29
je 0x47d21f
test bl, 0x10
jne 0x47d222
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x47d21f
cmp dl, 0x7d
jne 0x47d222
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0047c870
test byte [esi + 0x50], 0x80
je 0x47d30f
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x47d297
lea ecx, [esi + 0x24]
call fcn.0047e710
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x47d28b
cmp byte [eax], 0x5c
jne 0x47d288
lea edx, [eax + 1]
cmp edx, ecx
je 0x47d288
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x47d272
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x47d285
cmp bl, 0x29
je 0x47d285
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x47d288
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x47d285
cmp dl, 0x7d
jne 0x47d288
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0047c870
jmp 0x47d60b
cmp al, 0x42
jne 0x47d30f
lea ecx, [esi + 0x24]
call fcn.0047e710
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x47d303
cmp byte [eax], 0x5c
jne 0x47d300
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x47d2fe
test byte [esi + 0x50], 8
jne 0x47d2d6
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x47d2ec
cmp cl, 0x29
je 0x47d2ec
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x47d2fe
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x47d2ec
mov edx, ecx
cmp bl, 0x7d
jne 0x47d2fe
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.0047c870
jmp 0x47d60b
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0047c870
jmp 0x47d60b
mov ecx, esi
call fcn.0047e1f0
jmp 0x47d601
cmp eax, 0x5b
jne 0x47d3e8
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x47d374
cmp byte [eax], 0x5c
jne 0x47d36e
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x47d36c
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x47d352
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x47d367
cmp cl, 0x29
je 0x47d367
mov ecx, eax
test bl, 0x10
jne 0x47d36c
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x47d367
mov edx, ecx
cmp bl, 0x7d
jne 0x47d36c
lea eax, [edx + 1]
jmp 0x47d36e
mov eax, ecx
inc eax
lea edi, [esi + 8]
mov dword [esi], eax
mov ecx, esi
call fcn.0047c870
mov ecx, esi
call fcn.0047e0b0
cmp dword [esi + 0x4c], 0x5d
jne 0x47d63c
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x47d5fa
cmp byte [eax], 0x5c
jne 0x47d3e0
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x47d3de
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x47d3be
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x47d3d3
cmp cl, 0x29
je 0x47d3d3
mov ecx, eax
test bl, 0x10
jne 0x47d3de
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x47d3d3
mov edx, ecx
cmp bl, 0x7d
jne 0x47d3de
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x47d5fa
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x47d5fa
cmp eax, 0x28
jne 0x47d4be
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x47d43d
cmp byte [eax], 0x5c
jne 0x47d43a
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x47d438
test byte [esi + 0x50], 8
jne 0x47d41d
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x47d433
cmp cl, 0x29
je 0x47d433
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x47d438
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x47d433
mov edx, ecx
cmp bl, 0x7d
jne 0x47d438
lea eax, [edx + 1]
jmp 0x47d43a
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0047c870
mov ecx, esi
call fcn.0047e350
cmp dword [esi + 0x4c], 0x29
mov bl, al
mov byte [ebp - 1], bl
jne 0x47d62e
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x47d4aa
cmp byte [eax], 0x5c
jne 0x47d4a7
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x47d4a2
test byte [esi + 0x50], 8
jne 0x47d487
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x47d49d
cmp cl, 0x29
je 0x47d49d
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x47d4a2
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x47d49d
mov edx, ecx
cmp bl, 0x7d
jne 0x47d4a2
lea eax, [edx + 1]
jmp 0x47d4a4
mov eax, ecx
mov bl, byte [ebp - 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.0047c870
test bl, bl
je 0x47d60b
jmp 0x47d601
cmp eax, 0x5e
jne 0x47d512
push 2
lea ecx, [esi + 0x24]
call fcn.0047d6d0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x47d506
cmp byte [eax], 0x5c
jne 0x47d504
inc eax
cmp eax, ecx
je 0x47d504
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x47d4f3
mov dl, byte [eax]
cmp dl, 0x28
je 0x47d502
cmp dl, 0x29
je 0x47d502
test cl, 0x10
jne 0x47d504
mov al, byte [eax]
cmp al, 0x7b
je 0x47d502
cmp al, 0x7d
jne 0x47d504
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0047c870
jmp 0x47d60b
cmp eax, 0x24
jne 0x47d569
push 3
lea ecx, [esi + 0x24]
call fcn.0047d6d0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x47d55d
cmp byte [eax], 0x5c
jne 0x47d55b
inc eax
cmp eax, ecx
je 0x47d55b
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x47d54a
mov dl, byte [eax]
cmp dl, 0x28
je 0x47d559
cmp dl, 0x29
je 0x47d559
test cl, 0x10
jne 0x47d55b
mov al, byte [eax]
cmp al, 0x7b
je 0x47d559
cmp al, 0x7d
jne 0x47d55b
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0047c870
jmp 0x47d60b
cmp eax, 0x2a
je 0x47d627
cmp eax, 0x2b
je 0x47d627
cmp eax, 0x3f
je 0x47d627
cmp eax, 0x7b
je 0x47d627
cmp eax, 0x7d
jne 0x47d5a1
test dword [esi + 0x50], 0x10000000
je 0x47d635
jmp 0x47d5b3
cmp eax, 0x5d
jne 0x47d5b3
test dword [esi + 0x50], 0x10000000
je 0x47d63c
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0047e790
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x47d5fa
cmp byte [eax], 0x5c
jne 0x47d5f8
inc eax
cmp eax, ecx
je 0x47d5f8
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x47d5e7
mov dl, byte [eax]
cmp dl, 0x28
je 0x47d5f6
cmp dl, 0x29
je 0x47d5f6
test cl, 0x10
jne 0x47d5f8
mov al, byte [eax]
cmp al, 0x7b
je 0x47d5f6
cmp al, 0x7d
jne 0x47d5f8
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.0047c870
mov ecx, esi
call fcn.0047e4f0
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x47d61e
cmp eax, 0x7c
jne 0x47d143
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.0047c860
push 5
call fcn.0047c860
push 6
call fcn.0047c860
push 4
call fcn.0047c860
int3