Function at 0x4d9d40
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x7d8
push ebp
push esi
push edi
mov edi, ecx
mov esi, edx
push 0x21
push edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], edi
call fcn.005912e0
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x4d9d72
mov byte [ebp], 0
mov al, byte [ebp + 1]
inc ebp
test al, al
jne 0x4d9d80
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x7d8
ret 4
push ebx
push 0x40
push ebp
call fcn.005912e0
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x4d9da1
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x7d8
ret 4
mov byte [ebx], 0
mov al, byte [ebx + 1]
inc ebx
test al, al
je 0x4d9d92
push 0x20
push edi
call fcn.005912e0
add esp, 8
test eax, eax
je 0x4d9dbe
mov byte [eax], 0
push 0x20
push ebp
call fcn.005912e0
add esp, 8
test eax, eax
je 0x4d9dd0
mov byte [eax], 0
push 0x20
push ebx
call fcn.005912e0
add esp, 8
test eax, eax
je 0x4d9de2
mov byte [eax], 0
xor edi, edi
cmp esi, 0xa
jl 0x4d9df5
sub esi, 0xa
mov dword [esp + 0x14], esi
mov edi, 1
cmp esi, 1
je 0x4d9e09
cmp esi, 3
je 0x4d9e09
cmp esi, 6
je 0x4d9e09
cmp esi, 8
jne 0x4d9e3f
mov al, byte [ebp]
cmp al, 0x2b
je 0x4d9e24
cmp al, 0x2d
je 0x4d9e24
cmp al, 0x2a
je 0x4d9e24
cmp al, 0x7e
je 0x4d9e24
cmp al, 0x5e
je 0x4d9e24
cmp al, 0x3d
jne 0x4d9e3f
mov eax, ebp
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4d9e30
sub eax, edx
cmp eax, 1
jbe 0x4d9e3f
inc ebp
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4d9e44
sub eax, edx
cmp eax, 0xa
jbe 0x4d9e66
inc ebp
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4d9e58
sub eax, edx
cmp eax, 0xa
ja 0x4d9e52
cmp esi, 3
je 0x4d9e7e
cmp esi, 4
je 0x4d9e7e
cmp esi, 8
je 0x4d9e7e
cmp esi, 9
jne 0x4d9f4e
push 0x3d
push ebx
call fcn.005912e0
add esp, 8
test eax, eax
je 0x4d9edd
cmp eax, ebx
jbe 0x4d9ea1
mov cl, byte [eax - 1]
dec eax
cmp cl, 0x2e
je 0x4d9ea0
cmp eax, ebx
ja 0x4d9e91
jmp 0x4d9ea1
inc eax
mov byte [eax], 0x2a
mov dl, byte [eax + 1]
inc eax
test dl, dl
mov ecx, eax
je 0x4d9ebd
mov edi, edi
mov dl, byte [ecx + 1]
inc ecx
cmp dl, 0x2e
je 0x4d9ec6
test dl, dl
jne 0x4d9eb0
cmp byte [ecx], 0x2e
jne 0x4d9f4b
mov dl, byte [ecx]
test dl, dl
je 0x4d9f4b
lea esp, [esp]
mov byte [eax], dl
mov dl, byte [ecx + 1]
inc eax
inc ecx
test dl, dl
jne 0x4d9ed0
jmp 0x4d9f4b
mov eax, dword [esp + 0x7ec]
test eax, eax
je 0x4d9f4e
test byte [eax + 0x1e88], 0x20
je 0x4d9f4e
push 0x5aaa50
push ebx
call fcn.00591d90
add esp, 8
test eax, eax
je 0x4d9f4e
cmp eax, ebx
jbe 0x4d9f17
mov cl, byte [eax - 1]
dec eax
cmp cl, 0x2e
je 0x4d9f16
cmp eax, ebx
ja 0x4d9f07
jmp 0x4d9f17
inc eax
mov byte [eax], 0x2a
mov dl, byte [eax + 1]
inc eax
test dl, dl
mov ecx, eax
je 0x4d9f31
mov dl, byte [ecx + 1]
inc ecx
cmp dl, 0x2e
je 0x4d9f36
test dl, dl
jne 0x4d9f24
cmp byte [ecx], 0x2e
jne 0x4d9f4b
mov dl, byte [ecx]
test dl, dl
je 0x4d9f4b
lea esp, [esp]
mov byte [eax], dl
mov dl, byte [ecx + 1]
inc eax
inc ecx
test dl, dl
jne 0x4d9f40
mov byte [eax], 0
cmp byte [ebx], 0
mov esi, ebx
je 0x4d9f7b
mov al, byte [esi]
cmp al, 0x2e
je 0x4d9f73
cmp al, 0x2a
je 0x4d9f73
cmp al, 0x3f
je 0x4d9f73
movzx eax, al
push eax
call fcn.005920a7
add esp, 4
test eax, eax
je 0x4d9fd3
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x4d9f55
push 0x2e
push ebx
call fcn.00591bd0
add esp, 8
test eax, eax
je 0x4da0fc
lea esi, [esp + 0x18]
mov byte [eax], 0
mov ecx, ebx
sub esi, ebx
lea esp, [esp]
mov dl, byte [ecx]
mov byte [esi + ecx], dl
inc ecx
test dl, dl
jne 0x4d9fa0
lea edi, [esp + 0x18]
dec edi
nop
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4d9fb0
mov cx, word [0x5aaa4c]
mov dl, byte [0x5aaa4e]
mov word [edi], cx
mov byte [edi + 2], dl
mov byte [eax], 0x2e
jmp 0x4da10e
test edi, edi
push 0x2e
push ebx
je 0x4da051
xor edi, edi
call fcn.005912e0
add esp, 8
test eax, eax
je 0x4da000
mov cl, byte [eax + 1]
inc edi
inc eax
test cl, cl
je 0x4da000
push 0x2e
push eax
call fcn.005912e0
add esp, 8
test eax, eax
jne 0x4d9fe8
lea edx, [esp + 0x18]
mov eax, ebx
sub edx, ebx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4da008
mov al, byte [esp + 0x18]
test al, al
lea esi, [esp + 0x18]
je 0x4da048
mov edi, edi
movzx ecx, byte [esi]
push ecx
call fcn.005920a7
add esp, 4
test eax, eax
je 0x4da035
mov byte [esi], 0x3f
jmp 0x4da040
cmp byte [esi], 0x2e
jne 0x4da040
dec edi
cmp edi, 1
je 0x4da048
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x4da020
lea ebx, [esp + 0x18]
jmp 0x4da10e
call fcn.005912e0
mov esi, eax
add esp, 8
test esi, esi
je 0x4da0e3
mov al, byte [esi + 1]
inc esi
test al, al
je 0x4da0cf
push 0x2e
push esi
call fcn.005912e0
add esp, 8
test eax, eax
je 0x4da0bb
mov al, byte [0x5a4d72]
mov dx, word [0x5a4d70]
mov byte [esp + 0x1a], al
mov eax, esi
mov word [esp + 0x18], dx
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4da093
lea edi, [esp + 0x18]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4da0a1
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x4da10e
lea edx, [esp + 0x18]
mov eax, ebx
sub edx, ebx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4da0c3
jmp 0x4da10e
lea edx, [esp + 0x18]
mov eax, ebx
sub edx, ebx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4da0d7
jmp 0x4da10e
lea edx, [esp + 0x18]
mov eax, ebx
sub edx, ebx
jmp 0x4da0f0
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4da0f0
jmp 0x4da10e
lea edx, [esp + 0x18]
mov eax, ebx
sub edx, ebx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4da104
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x4da133
push ebx
push ebp
lea eax, [esp + 0x408]
push 0x5aaa40
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
jmp 0x4da34f
cmp eax, 1
jne 0x4da196
mov eax, ebp
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4da140
sub eax, edx
cmp eax, 0xa
jb 0x4da164
mov edi, edi
inc ebp
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4da156
sub eax, edx
cmp eax, 0xa
jae 0x4da150
push 0x5a574c
push ebp
call fcn.005a299c
add esp, 8
test eax, eax
jne 0x4da179
mov byte [ebp], al
push ebx
push ebp
lea ecx, [esp + 0x408]
push 0x5aaa34
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
jmp 0x4da34f
cmp eax, 2
jne 0x4da1b7
push ebx
lea edx, [esp + 0x404]
push 0x5a5738
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x4da34f
cmp eax, 3
jne 0x4da21a
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4da1c1
sub eax, edx
cmp eax, 0xa
jb 0x4da1e4
nop
inc ebp
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4da1d6
sub eax, edx
cmp eax, 0xa
jae 0x4da1d0
push 0x5a574c
push ebp
call fcn.005a299c
add esp, 8
test eax, eax
jne 0x4da1f9
mov byte [ebp], al
lea eax, [esp + 0x18]
push eax
push ebp
lea ecx, [esp + 0x408]
push 0x5aaa34
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
jmp 0x4da34f
cmp eax, 4
jne 0x4da23f
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x404]
push 0x5a5738
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x4da34f
cmp eax, 5
je 0x4da332
cmp eax, 6
jne 0x4da2a2
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4da252
sub eax, edx
cmp eax, 0xa
jb 0x4da274
inc ebp
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4da266
sub eax, edx
cmp eax, 0xa
jae 0x4da260
push 0x5a574c
push ebp
call fcn.005a299c
add esp, 8
test eax, eax
jne 0x4da289
mov byte [ebp], al
mov eax, dword [esp + 0x10]
push ebx
push ebp
push eax
push str._s__s__s
lea ecx, [esp + 0x410]
push ecx
jmp 0x4da346
cmp eax, 7
jne 0x4da2c8
push ebx
mov edx, dword [esp + 0x14]
push edx
lea eax, [esp + 0x408]
push 0x5aaa1c
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
jmp 0x4da34f
cmp eax, 8
jne 0x4da323
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4da2d2
sub eax, edx
cmp eax, 0xa
jb 0x4da2f4
inc ebp
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4da2e6
sub eax, edx
cmp eax, 0xa
jae 0x4da2e0
push 0x5a574c
push ebp
call fcn.005a299c
add esp, 8
test eax, eax
jne 0x4da309
mov byte [ebp], al
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x18]
push ecx
push ebp
push edx
push str._s__s__s
lea eax, [esp + 0x410]
push eax
jmp 0x4da346
cmp eax, 9
jne 0x4da332
lea ecx, [esp + 0x18]
push ecx
jmp 0x4da2a8
mov ecx, dword [esp + 0x10]
push ebx
push ebp
push ecx
lea edx, [esp + 0x40c]
push 0x5aa4bc
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x400]
lea eax, [esp + 0x400]
sub edx, ecx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4da363
pop ebx
pop edi
pop esi
mov eax, 1
pop ebp
add esp, 0x7d8
ret 4