Function at 0x4e9d50
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x7d4
push esi
push edi
mov edi, dword [esp + 0x7e0]
push 0x21
push edi
call fcn.005cbf10
mov esi, eax
add esp, 8
test esi, esi
je 0x4e9d7f
mov byte [esi], 0
mov al, byte [esi + 1]
inc esi
test al, al
mov dword [esp + 8], esi
jne 0x4e9d8a
pop edi
xor eax, eax
pop esi
add esp, 0x7d4
ret
push ebx
push 0x40
push esi
call fcn.005cbf10
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x4e9da8
pop ebx
pop edi
xor eax, eax
pop esi
add esp, 0x7d4
ret
mov byte [ebx], 0
mov al, byte [ebx + 1]
inc ebx
test al, al
je 0x4e9d9c
push 0x20
push edi
call fcn.005cbf10
add esp, 8
test eax, eax
je 0x4e9dc5
mov byte [eax], 0
push 0x20
push esi
call fcn.005cbf10
add esp, 8
test eax, eax
je 0x4e9dd7
mov byte [eax], 0
push 0x20
push ebx
call fcn.005cbf10
add esp, 8
test eax, eax
je 0x4e9de9
mov byte [eax], 0
push ebp
mov ebp, dword [esp + 0x7ec]
xor edi, edi
cmp ebp, 0xa
jl 0x4e9e00
sub ebp, 0xa
mov edi, 1
cmp ebp, 1
je 0x4e9e14
cmp ebp, 3
je 0x4e9e14
cmp ebp, 6
je 0x4e9e14
cmp ebp, 8
jne 0x4e9e46
mov al, byte [esi]
cmp al, 0x2b
je 0x4e9e2e
cmp al, 0x2d
je 0x4e9e2e
cmp al, 0x2a
je 0x4e9e2e
cmp al, 0x7e
je 0x4e9e2e
cmp al, 0x5e
je 0x4e9e2e
cmp al, 0x3d
jne 0x4e9e46
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4e9e33
sub eax, edx
cmp eax, 1
jbe 0x4e9e46
inc esi
mov dword [esp + 0x10], esi
mov eax, esi
lea edx, [eax + 1]
jmp 0x4e9e50
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4e9e50
sub eax, edx
cmp eax, 0xa
jbe 0x4e9e78
mov edi, edi
inc esi
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4e9e66
sub eax, edx
cmp eax, 0xa
ja 0x4e9e60
mov dword [esp + 0x10], esi
cmp ebp, 3
je 0x4e9e90
cmp ebp, 4
je 0x4e9e90
cmp ebp, 8
je 0x4e9e90
cmp ebp, 9
jne 0x4e9f5e
push 0x3d
push ebx
call fcn.005cbf10
add esp, 8
test eax, eax
je 0x4e9eed
cmp eax, ebx
jbe 0x4e9eb3
mov cl, byte [eax - 1]
dec eax
cmp cl, 0x2e
je 0x4e9eb2
cmp eax, ebx
ja 0x4e9ea3
jmp 0x4e9eb3
inc eax
mov byte [eax], 0x2a
mov dl, byte [eax + 1]
inc eax
test dl, dl
mov ecx, eax
je 0x4e9ecd
mov dl, byte [ecx + 1]
inc ecx
cmp dl, 0x2e
je 0x4e9ed6
test dl, dl
jne 0x4e9ec0
cmp byte [ecx], 0x2e
jne 0x4e9f5b
mov dl, byte [ecx]
test dl, dl
je 0x4e9f5b
lea esp, [esp]
mov byte [eax], dl
mov dl, byte [ecx + 1]
inc eax
inc ecx
test dl, dl
jne 0x4e9ee0
jmp 0x4e9f5b
mov eax, dword [esp + 0x7f0]
test eax, eax
je 0x4e9f5e
test byte [eax + 0x1e80], 0x20
je 0x4e9f5e
push 0x5ed3a8
push ebx
call fcn.005ccdf0
add esp, 8
test eax, eax
je 0x4e9f5e
cmp eax, ebx
jbe 0x4e9f27
mov cl, byte [eax - 1]
dec eax
cmp cl, 0x2e
je 0x4e9f26
cmp eax, ebx
ja 0x4e9f17
jmp 0x4e9f27
inc eax
mov byte [eax], 0x2a
mov dl, byte [eax + 1]
inc eax
test dl, dl
mov ecx, eax
je 0x4e9f41
mov dl, byte [ecx + 1]
inc ecx
cmp dl, 0x2e
je 0x4e9f46
test dl, dl
jne 0x4e9f34
cmp byte [ecx], 0x2e
jne 0x4e9f5b
mov dl, byte [ecx]
test dl, dl
je 0x4e9f5b
lea esp, [esp]
mov byte [eax], dl
mov dl, byte [ecx + 1]
inc eax
inc ecx
test dl, dl
jne 0x4e9f50
mov byte [eax], 0
cmp byte [ebx], 0
mov esi, ebx
je 0x4e9f8b
mov al, byte [esi]
cmp al, 0x2e
je 0x4e9f83
cmp al, 0x2a
je 0x4e9f83
cmp al, 0x3f
je 0x4e9f83
movzx eax, al
push eax
call fcn.005cd445
add esp, 4
test eax, eax
je 0x4e9fe3
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x4e9f65
push 0x2e
push ebx
call fcn.005ccc30
add esp, 8
test eax, eax
je 0x4ea10c
lea esi, [esp + 0x14]
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 0x4e9fb0
lea edi, [esp + 0x14]
dec edi
nop
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4e9fc0
mov cx, word [0x5ed3a4]
mov dl, byte [0x5ed3a6]
mov word [edi], cx
mov byte [edi + 2], dl
mov byte [eax], 0x2e
jmp 0x4ea11e
test edi, edi
push 0x2e
push ebx
je 0x4ea061
xor edi, edi
call fcn.005cbf10
add esp, 8
test eax, eax
je 0x4ea010
mov cl, byte [eax + 1]
inc edi
inc eax
test cl, cl
je 0x4ea010
push 0x2e
push eax
call fcn.005cbf10
add esp, 8
test eax, eax
jne 0x4e9ff8
lea edx, [esp + 0x14]
mov eax, ebx
sub edx, ebx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4ea018
mov al, byte [esp + 0x14]
test al, al
lea esi, [esp + 0x14]
je 0x4ea058
mov edi, edi
movzx ecx, byte [esi]
push ecx
call fcn.005cd445
add esp, 4
test eax, eax
je 0x4ea045
mov byte [esi], 0x3f
jmp 0x4ea050
cmp byte [esi], 0x2e
jne 0x4ea050
dec edi
cmp edi, 1
je 0x4ea058
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x4ea030
lea ebx, [esp + 0x14]
jmp 0x4ea11e
call fcn.005cbf10
mov esi, eax
add esp, 8
test esi, esi
je 0x4ea0f3
mov al, byte [esi + 1]
inc esi
test al, al
je 0x4ea0df
push 0x2e
push esi
call fcn.005cbf10
add esp, 8
test eax, eax
je 0x4ea0cb
mov al, byte [0x5e6e22]
mov dx, word [0x5e6e20]
mov byte [esp + 0x16], al
mov eax, esi
mov word [esp + 0x14], dx
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ea0a3
lea edi, [esp + 0x14]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4ea0b1
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 0x4ea11e
lea edx, [esp + 0x14]
mov eax, ebx
sub edx, ebx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4ea0d3
jmp 0x4ea11e
lea edx, [esp + 0x14]
mov eax, ebx
sub edx, ebx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4ea0e7
jmp 0x4ea11e
lea edx, [esp + 0x14]
mov eax, ebx
sub edx, ebx
jmp 0x4ea100
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4ea100
jmp 0x4ea11e
lea edx, [esp + 0x14]
mov eax, ebx
sub edx, ebx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4ea114
test ebp, ebp
jne 0x4ea143
mov eax, dword [esp + 0x10]
push ebx
push eax
lea ecx, [esp + 0x404]
push 0x5ed398
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
jmp 0x4ea3a4
cmp ebp, 1
jne 0x4ea1a5
mov esi, dword [esp + 0x10]
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ea151
sub eax, edx
cmp eax, 0xa
jb 0x4ea174
nop
inc esi
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ea166
sub eax, edx
cmp eax, 0xa
jae 0x4ea160
push 0x5e781c
push esi
call fcn.005e31f5
add esp, 8
test eax, eax
jne 0x4ea188
mov byte [esi], al
push ebx
push esi
lea edx, [esp + 0x404]
push 0x5ed38c
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
jmp 0x4ea3a4
cmp ebp, 2
jne 0x4ea1c6
push ebx
lea eax, [esp + 0x400]
push 0x5e7808
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x4ea3a4
cmp ebp, 3
jne 0x4ea22b
mov esi, dword [esp + 0x10]
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ea1d4
sub eax, edx
cmp eax, 0xa
jb 0x4ea1f6
inc esi
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ea1e8
sub eax, edx
cmp eax, 0xa
jae 0x4ea1e2
push 0x5e781c
push esi
call fcn.005e31f5
add esp, 8
test eax, eax
jne 0x4ea20a
mov byte [esi], al
lea ecx, [esp + 0x14]
push ecx
push esi
lea edx, [esp + 0x404]
push 0x5ed38c
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
jmp 0x4ea3a4
cmp ebp, 4
jne 0x4ea250
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x400]
push 0x5e7808
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x4ea3a4
cmp ebp, 5
jne 0x4ea275
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x7e8]
push ebx
push edx
push eax
push 0x5ecd1c
lea ecx, [esp + 0x40c]
push ecx
jmp 0x4ea39b
cmp ebp, 6
jne 0x4ea2d5
mov esi, dword [esp + 0x10]
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ea283
sub eax, edx
cmp eax, 0xa
jb 0x4ea2a5
inc esi
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ea297
sub eax, edx
cmp eax, 0xa
jae 0x4ea291
push 0x5e781c
push esi
call fcn.005e31f5
add esp, 8
test eax, eax
jne 0x4ea2b9
mov byte [esi], al
mov edx, dword [esp + 0x7e8]
push ebx
push esi
push edx
push str._s__s__s
lea eax, [esp + 0x40c]
push eax
jmp 0x4ea39b
cmp ebp, 7
jne 0x4ea2fe
mov ecx, dword [esp + 0x7e8]
push ebx
push ecx
lea edx, [esp + 0x404]
push 0x5ed374
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
jmp 0x4ea3a4
cmp ebp, 8
jne 0x4ea35d
mov esi, dword [esp + 0x10]
mov eax, esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ea310
sub eax, edx
cmp eax, 0xa
jb 0x4ea334
mov edi, edi
inc esi
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4ea326
sub eax, edx
cmp eax, 0xa
jae 0x4ea320
push 0x5e781c
push esi
call fcn.005e31f5
add esp, 8
test eax, eax
jne 0x4ea348
mov byte [esi], al
mov ecx, dword [esp + 0x7e8]
lea eax, [esp + 0x14]
push eax
push esi
push ecx
push str._s__s__s
jmp 0x4ea393
cmp ebp, 9
mov ecx, dword [esp + 0x7e8]
jne 0x4ea387
lea eax, [esp + 0x14]
push eax
push ecx
lea edx, [esp + 0x404]
push 0x5ed374
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
jmp 0x4ea3a4
mov eax, dword [esp + 0x10]
push ebx
push eax
push ecx
push 0x5ecd1c
lea edx, [esp + 0x40c]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
mov edx, dword [esp + 0x7e8]
lea ecx, [esp + 0x3fc]
lea eax, [esp + 0x3fc]
sub edx, ecx
pop ebp
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4ea3c0
pop ebx
pop edi
mov eax, 1
pop esi
add esp, 0x7d4
ret