Function at 0x457e50
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x14
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x34]
mov ebx, ecx
mov dword [esp + 0x14], ebx
mov al, byte [edi]
cmp al, 0x23
jne 0x45804c
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x38]
mov esi, 1
mov ecx, dword [eax]
cmp ebx, esi
mov dword [esp + 0x18], ecx
jle 0x457e96
mov al, byte [esi + edi]
cmp al, 0x3d
je 0x457e96
cmp al, 0x20
je 0x457e96
cmp al, 9
je 0x457e96
inc esi
cmp esi, ebx
jl 0x457e82
cmp byte [esi + edi], 0x3d
jne 0x457e9d
inc esi
mov eax, dword [0x508464]
mov ebp, dword [esp + 0x28]
lea ecx, [eax + eax*2]
lea edx, [ecx + ecx*8]
shl edx, 1
sub edx, eax
mov eax, dword [edx*4 + 0x510094]
push eax
push ebp
call dword [0x4de198]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
push 0
push esi
push edi
push ecx
mov ecx, dword [eax]
push 4
push edx
push ecx
push ebp
call dword [0x4de1a0]
mov eax, dword [0x5134f8]
xor edx, edx
cmp eax, edx
mov dword [esp + 0x28], edx
je 0x457fc0
cmp esi, edx
mov dword [esp + 0x10], edx
jle 0x457fea
mov al, byte [edi]
mov ecx, eax
and ecx, 0xff
cmp byte [ecx + 0x513568], 0
je 0x457f93
lea ebx, [esi - 1]
cmp edx, ebx
jge 0x457f8f
xor ecx, ecx
mov ch, al
mov cl, byte [edi + 1]
mov eax, ecx
and eax, 0xffff
shl eax, 1
mov ebx, eax
mov eax, dword [0x51353c]
mov ax, word [ebx + eax]
test ax, ax
jne 0x457f78
lea ecx, [esp + 0x1c]
push ecx
push 2
push edi
push ebp
call dword [0x4de14c]
mov eax, dword [0x513538]
test eax, eax
je 0x457f62
mov edx, dword [0x513520]
mov eax, dword [esp + 0x1c]
sub eax, edx
mov dword [esp + 0x1c], eax
mov eax, dword [0x51353c]
mov cx, word [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov word [ebx + eax], cx
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x28]
and eax, 0xffff
add ebx, eax
inc edx
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x38]
inc edi
jmp 0x457fac
mov ebx, dword [esp + 0x38]
mov eax, dword [0x51353c]
xor edx, edx
mov dx, word [eax + ecx*2]
mov eax, dword [esp + 0x28]
add eax, edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x28], eax
inc edx
inc edi
cmp edx, esi
mov dword [esp + 0x10], edx
jl 0x457efc
mov edi, dword [esp + 0x34]
jmp 0x457fea
xor eax, eax
cmp esi, edx
jle 0x457fea
mov ecx, dword [0x51353c]
xor edx, edx
xor ebx, ebx
mov dl, byte [eax + edi]
mov bx, word [ecx + edx*2]
mov edx, dword [esp + 0x28]
add edx, ebx
inc eax
cmp eax, esi
mov dword [esp + 0x28], edx
jl 0x457fcc
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov edx, dword [eax]
add edx, ecx
cmp esi, ebx
mov dword [eax], edx
jge 0x45826d
mov eax, dword [0x508464]
lea ecx, [eax + eax*2]
lea edx, [ecx + ecx*8]
shl edx, 1
sub edx, eax
mov eax, dword [edx*4 + 0x5100b8]
push eax
push ebp
call dword [0x4de198]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x30]
sub ebx, esi
push edx
add esi, edi
push ebx
push esi
push eax
push ecx
mov ecx, dword [esp + 0x2c]
push ebp
call fcn.004585d0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 0x18
cmp al, 0x3b
jne 0x45809c
mov eax, dword [0x508464]
mov esi, dword [esp + 0x28]
lea ecx, [eax + eax*2]
lea edx, [ecx + ecx*8]
shl edx, 1
sub edx, eax
mov eax, dword [edx*4 + 0x5100b0]
push eax
push esi
call dword [0x4de198]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x3c]
mov edx, dword [eax]
push edx
mov edx, dword [esp + 0x38]
push ecx
push edi
push edx
push eax
push esi
mov ecx, ebx
call fcn.004585d0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 0x18
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
xor ebp, ebp
mov ecx, dword [edx]
test eax, eax
mov dword [esp + 0x18], ecx
jle 0x4580cb
mov bl, 0x21
cmp byte [edi + ebp], 0x5e
jne 0x4580c6
cmp byte [edi + ebp + 1], bl
je 0x4580cb
lea esi, [eax - 1]
cmp ebp, esi
jge 0x4580c6
inc ebp
inc ebp
cmp ebp, eax
jl 0x4580b2
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x28]
push esi
push ecx
mov ecx, dword [esp + 0x1c]
push ebp
push edi
push eax
push edx
push ebx
call fcn.004585d0
cmp ebp, dword [esp + 0x38]
je 0x45826d
mov eax, dword [0x508464]
add edi, ebp
mov dword [esp + 0x34], edi
lea ecx, [eax + eax*2]
lea ecx, [ecx + ecx*8]
shl ecx, 1
sub ecx, eax
mov edx, dword [ecx*4 + 0x510098]
push edx
push ebx
call dword [0x4de198]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
push 0
push 2
mov edx, dword [ecx]
push edi
push esi
push 4
push eax
push edx
push ebx
call dword [0x4de1a0]
mov eax, dword [0x5134f8]
xor edx, edx
cmp eax, edx
mov dword [esp + 0x28], edx
je 0x458200
mov dword [esp + 0x10], edx
mov esi, edi
mov al, byte [esi]
mov ecx, eax
and ecx, 0xff
cmp byte [ecx + 0x513568], 0
je 0x4581d6
cmp edx, 1
jge 0x4581d6
xor ecx, ecx
mov ch, al
mov cl, byte [esi + 1]
mov eax, ecx
and eax, 0xffff
shl eax, 1
mov edi, eax
mov eax, dword [0x51353c]
mov ax, word [edi + eax]
test ax, ax
jne 0x4581bf
lea ecx, [esp + 0x1c]
push ecx
push 2
push esi
push ebx
call dword [0x4de14c]
mov eax, dword [0x513538]
test eax, eax
je 0x4581a9
mov edx, dword [0x513520]
mov eax, dword [esp + 0x1c]
sub eax, edx
mov dword [esp + 0x1c], eax
mov eax, dword [0x51353c]
mov cx, word [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov word [edi + eax], cx
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x28]
and eax, 0xffff
add edi, eax
inc edx
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x34]
inc esi
jmp 0x4581ef
mov eax, dword [0x51353c]
xor edx, edx
mov dx, word [eax + ecx*2]
mov eax, dword [esp + 0x28]
add eax, edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x28], eax
inc edx
inc esi
cmp edx, 2
mov dword [esp + 0x10], edx
jl 0x458149
jmp 0x458223
mov esi, dword [0x51353c]
xor eax, eax
xor ecx, ecx
xor edx, edx
mov cl, byte [eax + edi]
mov dx, word [esi + ecx*2]
mov ecx, dword [esp + 0x28]
add ecx, edx
inc eax
cmp eax, 2
mov dword [esp + 0x28], ecx
jl 0x458208
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov ecx, dword [esi]
add ecx, eax
mov dword [esi], ecx
mov ecx, 0xfffffffe
sub ecx, ebp
mov ebp, dword [esp + 0x38]
add ebp, ecx
je 0x45826d
mov edx, dword [0x50fd3c]
push edx
push ebx
call dword [0x4de198]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x30]
push eax
push ecx
mov ecx, dword [esp + 0x1c]
add edi, 2
push ebp
push edi
push edx
push esi
push ebx
call fcn.004585d0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 0x18